public class finallyTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
System.out.println(1);
return ;
} catch (Exception e) {
// TODO: handle exception
}
finally{
System.out.println(2);
}
System.out.println(3);
}
}
return 讨论为何去执行过finally再去执行return呢,java机制中具体怎么工做的,为何finally具备最高的优先级呢,java是怎么样保证finally具备最高优先级的
可是程序中有finally就必定会执行吗?答案是否认的由于只有与 finally 相对应的 try 语句块获得执行的状况下,finally 语句块才会执行。若是在try以前抛出异常或return则不会执行finallyjava
可是在执行try时,若是try中有return程序又怎么会不是return执行的呢,而是在return以前先去执行finally呢?spa