关于try-catch-finally return 的面试题
public class Test { public static void main(String[] args) { System.out.println(test()); } static int test(){ int num=1; try { num++; return num; } finally{ num++; } }
代码的执行顺序,无论引用类型还是值类型 均适用
2.关于return和finally的执行问题
唯一不能让finally代码块执行的原因是
system.exit(1); 即java虚拟机异常退出
所以 无论有无return ,finally中的代码块都会执行
3.
public static void main(String[] args) { try { System.out.println("1"); int result=5/0; return; } catch (Exception e) { System.out.println("异常"); System.out.println("2"); }finally{ System.out.println("finally"); System.out.println("3"); } System.out.println("4"); }
public static void main(String[] args) { try { System.out.println("1"); int result=5/0; } catch (Exception e) { System.out.println("异常"); System.out.println("2"); return; }finally{ System.out.println("finally"); System.out.println("3"); } System.out.println("4"); }

浙公网安备 33010602011771号