关于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");
} 

posted @ 2016-04-23 16:31  回青  阅读(430)  评论(0)    收藏  举报