以下过程得出唯一解,那就是,无论 try 还是 catch 中有 return 语句,无论代码有没有捕捉到异常,finally 代码块最终肯定会执行的,放心好了。
try中有 return 语句时:
运行结果:
catch 中有 return 且代码捕捉到异常时:
运行结果:
附上代码:
public class Finally { public static void main(String[] args) { // try{ // return; // }catch(Exception e){ // e.printStackTrace(); // }finally { // System.out.println("finally语句执行-----1"); // } try{ int i = 1/0; }catch(ArithmeticException e){ e.printStackTrace(); return; }finally { System.out.println("finally语句执行-----2"); } } }