【发布时间】:2020-07-02 05:46:31
【问题描述】:
在这段代码中,main 方法的 Catch 没有捕获运行时异常。 finally 块执行后,应该已经到了 main 的异常块,但它没有。
class FinallyDemo {
static int m1(){
try{
System.out.println("Inside m1");
throw new RuntimeException("hi");
}
finally {
System.out.println("m1 finally");
return 5;
}
}
public static void main(String[] args) {
try{
System.out.println(m1());
}catch (Exception e){
System.out.println("main caught: "+ e);
}
}
}
输出:
Inside m1
m1 finally
5
【问题讨论】:
-
你真的得到了上面提到的输出吗?据我所知,
void方法不返回任何值。因此System.out.println(m1());会产生编译时异常。 -
对不起,我已经编辑了代码
标签: java exception try-finally