【发布时间】:2017-02-10 19:39:07
【问题描述】:
考虑一下我在一次采访中被问到的这个问题
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);
}
}
这个程序的输出抛出 ArithmeticException 而不是 UnsupportedOperationException
面试官只是问我如何让客户知道引发的原始异常类型是UnsupportedOperationException 而不是ArithmeticException。
我不知道
【问题讨论】:
标签: java exception exception-handling try-catch try-catch-finally