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;