Java におけるチェック済み例外と非チェック済み例外の相対的なメリットについては十分に議論されている ことを認識しており、議論全体を再検討するつもりはありません。
むしろ、Joshua Bloch の『Effective Java, 2nd Edition』を読んでいたときに頭に浮かんだ、非常に具体的な質問をしたいと思います。読んでいると、項目 59 (「チェック済み例外の不必要な使用を避ける」) で、Joshua がチェック済み例外が使用されている Java API の例を示していることに気付きました。具体的には、次のObject
とおりです。
protected Object clone()
throws CloneNotSupportedException
...そして、代わりに未チェックの例外であるべきだったと主張します。
API を使用するプログラマーがこれ以上うまくいかない場合は、未チェックの例外の方が適切です。このテストに失敗する例外の一例は、CloneNotSupportedException です。Object.clone によってスローされます。これは、Cloneable (項目 11) を実装するオブジェクトでのみ呼び出す必要があります。実際には、ほとんどの場合、catch ブロックにはアサーションの失敗の特徴があります。例外のチェックされた性質は、プログラマーにとって何のメリットもありませんが、労力を必要とし、プログラムを複雑にします。
次に、彼が逆の例を持っているかどうかを調べましたが、見つけることができませんでした.
そこで、チェックされていない例外を使用するJavaのAPIの例を誰かが提供できるかどうかを尋ねたいと思いますが、チェックされた例外の方が良い選択であり、その理由を説明してください。現実世界の例が望ましいですが、それが問題を説明するのであれば、不自然な例でも構いません。
編集: これを非建設的なものとして締めくくることに投票した人たちに、私は意見、討論、議論、または拡張された議論を求めていないことを明確にしたいと思います. また、投票も行っていません。むしろ、メリットがコストを上回ることを明確に分析できる例への参照を探しています。(それは、コストがあることを認めていることを暗に示しています。)とはいえ、この質問の性質がそれを可能にするかどうかについては、私は懐疑的です。ジョン・スキートができないなら、できる可能性は低いと思います。だから多分あなたは正しいです。必要に応じて閉じます。
編集:私は反応に動揺していませんが、私の受け入れ率のためだけにジョンにこれを与えるつもりです.