私のコードは以下の通りです: -例外処理フローの不一致
class Varr {
public static void main(String[] args) {
try {
System.out.println(10/0);
}
catch(ArithmeticException e) {
System.out.println("catch1");
System.out.println("catch1");
throw new ArithmeticException ("Exce");
}
finally {
System.out.println("finally");
}
}
}
出力は次のようになります -
catch1 catch1 finally Exception in thread "main" java.lang.ArithmeticException: Exce at one.Varr.main(Varr.java:22)
は、私の知る限り1としてフローは最初のキャッチその後、試す必要があります最終的には最後に、出力ごとにフローが試行され、スロー例外ステートメントまでキャッチされ、キャッチの例外ステートメントがスローされますhブロック。
なぜフローの食い違いがあり、finally
のブロックは、定義により、どんなにの結果を実行する必要があるため、最終的catchブロックのスロー新しい例外声明
たぶんこの記事は役立つことができます:https://stackoverflow.com/a/3779677/7459622答えを –