3
catchブロックとfinallyブロック例外の両方がJavaでスローされるとどうなりますか?
public class Test_finally {
private static int run(int input) {
int result = 0;
try {
result = 3/input;
} catch (Exception e) {
System.out.println("UnsupportedOperationException");
throw new UnsupportedOperationException("first");
} finally {
System.out.println("finally input=" + input);
if (0 == input) {
System.out.println("ArithmeticException");
throw new ArithmeticException("second");
}
}
System.out.println("end of method");
return result * 2;
}
public static void main(String[] args) {
int output = Test_finally.run(0);
System.out.println(" output=" + output);
}
}
このプログラムの出力は、私は、クライアントが提起元の例外がタイプUnsupportedOperationException
ないArithmeticException
あった知らせますかArithmeticException
ないUnsupportedOperationException
インタビュアーは単に尋ねスロー私はインタビューで頼まれたこの質問を考えてみましょう。 私はそれを知らなかった
一つは、故意 'finally'ブロックから投げないかもしれませんが、様々なものがfinally'ブロック'内で発生する未チェック(予期せぬ)例外を引き起こす可能性があります。 – supercat