【发布时间】:2018-04-26 18:43:42
【问题描述】:
在下面的代码中,内部catch块内引发了异常,因此理想情况下它应该被外部catch块捕获,并且应该导致正常执行。 但是当我执行时,它没有被外部catch块捕获,仍然正常执行,没有任何堆栈跟踪。
我的疑问是,如果它已经正常执行(没有堆栈跟踪),那么它一定是被外部 catch 捕获(应该打印“10”)
代码:
public class Test2 {
public static void main(String[] args) {
try {
System.out.println("1");
System.out.println("2");
System.out.println("3");
try {
System.out.println("4");
System.out.println("5");
System.out.println("6");
}
catch(NullPointerException e)
{
int x=1/0;
}
finally
{
System.out.println("8");
}
System.out.println("9");
}
catch(ArithmeticException e)
{
System.out.println("10");
}
finally
{
System.out.println("11");
}
System.out.println("12");
}
}
输出:
1
2
3
4
5
6
8
9
11
12
【问题讨论】:
-
我没有看到任何抛出
NullPointerException的代码