torutkのブログ

ソフトウェア・エンジニアのブログ

例外設計、チェック例外の是非(続)

Javaの例外設計 - torutkの日記 を書いた後、"Bruce Eckel is Wrong"という題名のブログを見つけました。このブログで間違っているといわれたBruce Eckel氏は「Thinking in Java」の著者で(「Thinking in C++」の著者でもありますが)、「Javaのチェック例外は失敗作」の考えの人です。

ブログのコメントには、賛否両方からいろいろな意見が書き込まれ、よい議論の場となっています。また、Eckel氏もコメントに書き込みしていました。

"Bruce Eckel is Wrong"の内容(抄訳、というよりつまみ訳)

チェック例外v.s.実行時例外(非チェック例外)の議論があるたびに、誰かが権威付けのためにBruce Eckelを持ち出すが、Eckelのチェック例外に関する主張〜チェック例外はcatchを強制するため、例外の握りつぶしを助長する〜は正しくない。だが、チェック例外はcatchせずにthrows宣言で呼び出し元に伝播させられる。Eckelの主張にはこの点が抜けている。チェック例外は決してスローされた直後にcatchしなければならないことを意味するものではない。なんでもcatchするのは初心者プログラマーの証だ。

この後いくつか主張が続きますが、このブログは本文よりも、チェック例外に賛同する人、反対する人のコメントに書き込まれた議論に価値があります。