このようなAPIではプログラマが「ファイルを開けなかったときの処理を忘れる」ことを防ぐことができない。 一方、検査例外を使えば「開けなかったときの処理」をプログラマが忘れることができない。 忘れた場合はコンパイルエラーになり、そもそも実行できないからである。 (簡単のためRuby風なAPIにしている) try { File f = File.open("dummy.txt"); f.write("Hello"); f.close(); } catch (IOException e) { // catchしない場合コンパイルエラー System.out.println("ファイルを開けませんでした。"); }