try、catch、finally用法总结:

1.执行顺序为先执行try块,并没有捕获到异常,finally  块,最后return。

2.不管有没有异常,finally中的代码都会执行

3.当try、catch中有return时,finally中的代码依然会继续执行

4.finally是在return后面的表达式运算之后执行的,此时并没有返回运算之后的值,而是把值保存起来,不管finally对该值做任何的改变,返回的值都不会改变,依然返回保存起来的值。也就是说方法的返回值是在finally运算之前就确定了的。

5.finally代码中最好不要包含return,程序会提前退出,也就是说返回的值不是try或catch中的值

1     public static void main(String[] args) {
 2         // TODO Auto-generated method stub
 3         System.out.println(test());
 4     }
 5    public static int test(){
 6        int i = 1; 
 7        try{
 8            i++;
 9            System.out.println("try i = "+i);
10        }catch(Exception e){
11            i ++;
12            System.out.println("catch i = "+i);
13        }finally{
14            i = 10;
15            System.out.println("finally i = "+i);
16        }
17        return i;
18    }

结果输出如下:

    try i = 2

    finally i = 10

    10