例外嫌い

プログラミング言語の機能で、例外ほど邪悪な機能はない。gotoなんて可愛いものである。
例外の悪い所は、いつどこで発生するか分からず、ひとたび発生すると、有無を言わせず残りの処理をスキップしてしまう。それに比べると、gotoはどこで発生するかが一目瞭然なので、全然ましである。
例外機構を持っているプログラミング言語でプログラムするときは、疑心暗鬼になってびくびくしながらプログラムを書くはめになる。気がつくと、try catchの山ができあがる。catchやfinallyの中でも例外が起きる可能性があるわけで、catchやfinallyの中にもtry catchを書かなければいけない。
Javaのチェック例外の機構は、この心配をいくらか軽減してくれるが、非チェック例外が存在するので全く安心はできない。例外のことを心配せずにプログラムを書くには、java.langの中だけでプログラムをするつもりでいる必要がある。
java.utilはもうすでに十分危険だ。なぜなら、これまた邪悪な継承というやつがあるからである。java.utilに存在する実装のことをどれだけ理解して、java.utilに属するクラスやインターフェースしか使わないでプログラムを書いても、別の場所でサブクラスを作ってそれを渡されるだけで、すべての仮定は崩れ去る。