2

有効な Java 例外の記事では、どのようにする必要があるかについて説明してCheckingAccountprocessCheck()ます。さらに、次のように述べています。

Java で不測の事態への対応を表す自然な方法は、2 つの例外を定義することですStopPaymentExceptionInsufficientFundsException

私には、これはフロー制御に使用される例外のように思えます。ここでフロー制御にチェック例外を使用しても問題ない理由を説明していただけますか? (または、これがフロー制御の場合ではないかどうか。)

4

2 に答える 2

5

特にチェックされた種類の例外は、フロー制御に最適ですが、例外的な場合に限ります。例外が「ハッピーデイシナリオ」の一部であるため、コードを実行するたびに予測どおりに発生する場合は、その場合に限ります。あなたはそれらを誤用します。そのための教科書の例は、while (true)ループを使用して配列を反復処理し、配列ArrayIndexOutOfBoundsを壊すことを期待しています。

例外によって処理されるもう1つの懸念は、「帯域外シグナリング」です。この場合、「ハッピーデイ」データのメソッドの戻り値をすでに占有しており、データがない理由を通知するために別の区別されたチャネルが必要です。戻る。Haskell / Scalaでは、多分モナドを使用します。Javaでは、チェックされた例外に固執する方がよいでしょう。

于 2013-01-15T10:50:07.530 に答える
0

いいえ

フロー制御に例外を使用しないでください。サーバーの負荷が高い場合、例外をスローすると、サーバーがさらに遅くなり、ダウンします

于 2013-01-15T11:02:23.720 に答える