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