若catch语句返回,那个么为什么它最终会阻塞呢?
package com.ami.practice;
public class UnrechebleStatement {
public static void main(String[] args) {
System.out.println(m());
}
public static int m(){
try{
int x=0;
int y=10/x;
return y;
}catch(Exception e){
return 1;
}finally {
return 2;
}
}
}
# 1 楼答案
来自JLS#14.17
特别是第二部分应该完美地回答你的问题
# 2 楼答案
最后,块总是被执行。。。无论是执行审判还是捕获
# 3 楼答案
除了在某些情况下,Finally总是被调用
1) 如果是系统。exit()被调用
2) 如果jvm崩溃
3) 如果我们使用嵌套的try catch