try块 catch finally

1.try捕获异常

    @Test
    public void fun2(){
        try{
            throw new RuntimeException();
        }finally{
            return;//异常被捕获,同时return结束方法;正常运行无任何异常抛出;
        }
    }
throw new RuntimeException()方法被try捕获,就不会抛出异常,finally为必然执行,因此该方法正常执行并结束。

2.try内return



    private static String fun1() {
        try {
            String a="a";
            String b="b";
//            System.exit(0);
            return a=new String("A");
        } finally {
            System.out.println("finally!");
        }
    }
output:finally!

就算try内正常return,finally内代码也会执行。该方法的执行顺序是:

String a="a";
String b="b";
a=new String("A");
System.out.println("finally!");
return a;
在try内遇到return时,会先执行finally中代码,在回到try中进行return;
 
 
原文地址:https://www.cnblogs.com/mryangbo/p/10853725.html