1

try...catch ブロックを使用して未チェックの例外を処理することが推奨されないのはなぜですか? 一部の条件付きチェックのみでそれらを回避する必要があるのはなぜですか?

4

1 に答える 1

0

Java の例外モデルの基本的な制限は、メソッドが例外をスローした場合、通常、その呼び出し元がその周囲の状況を知ることができないことです。計算しようとしているコードががゼロx % yかどうかをテストする場合、コードは が発生した正確な状況を知り、状況を適切に処理できます。代わりに例外をキャッチすることによって条件が処理される場合、プログラマーは、いつ計算しようとした結果として例外が発生したと予想する場合があります。yDivideByZeroExceptionx % yyはゼロですが、予期しない理由で発生するゼロ除算の例外もキャッチします (たとえば、セットを分割するはずのメソッドを呼び出したが、セットを 0 個の断片に細分しようとするバグがあります)。例外をキャッチするときに、予想される理由で例外がスローされた場合にのみ例外をキャッチするように指定する方法はありません。実際には、チェックされた例外とチェックされていない例外の両方に同じ問題がありますが、予期しない状況でチェックされていない例外がスローされることはより一般的です。

于 2014-08-23T18:53:41.883 に答える