以下は私のコードです。私が2番目のステートメントにコメントしているときに罰金を守っていますが、コメントを外すとコンパイルエラーが発生します"Unreachable Code"
。例外処理到達不能コード
コメントを外した後にエラーが発生する理由を理解していますが、私がまだbad()
にアクセスできない場合でも、私はthrowing
だと例外がキャッチされています。
class Varr
{
public static void main(String[] args) throws Exception
{
System.out.println("Main");
try {
good();
} catch (Exception e) {
System.out.println("Main catch");
//**Statement 1**
throw new RuntimeException("RE");
} finally {
System.out.println("Main Finally");
// **Statement 2**
throw new RuntimeException("RE2");
}
bad();
}
}
( '悪い)'あなたはコメントを出した場合、 'ステートメント、到達不可能ではありません2 '。私はあなたが「ついに」という誤解をしていると思います。そして一つの発言:「最終的に」ブロックに何かを戻したり投げたりしてはいけません。これは明確に定義されていますが、理解しづらい動作につながります。あなたの例では、 'finally'は常に実行され、すべてを打つので、常に' 'RE2'' -Exceptionを投げます。 – Turing85