对于异常捕获及返回执行顺序的实验和总结
- try{code1;return1} catch{code2;return2} finally {code3}
1 public static void main(String[] args) { 2 int flag=testtrycatch(); 3 System.out.println("flag:"+flag); 4 } 5 static int testtrycatch(){ 6 try { 7 int value =1/1; 8 return 111111; 9 }catch (Exception e) { 10 System.out.println("catch"+e); 11 return 222222; 12 }finally { 13 System.out.println("finally"); 14 } 15 }
无异常的返回,程序执行顺序是code1—code3—return1;
输出:flag=111111
有异常的返回,程序执行顺序是code2—code3—return2;
输出:flag=222222
- try{code1;return1} catch{code2} finally {code3}returnx
1 public static void main(String[] args) { 2 int flag=testtrycatch(); 3 System.out.println(flag); 4 } 5 static int testtrycatch(){ 6 try { 7 int value =1/0; 8 return 111111; 9 }catch (Exception e) { 10 System.out.println("catch"+e); 11 }finally { 12 System.out.println("finally"); 13 } 14 return 333333; 15 }
无异常的返回,程序执行顺序是code1—code3—return1;
输出:flag=111111
有异常的返回,程序执行顺序是code2—code3—returnx;
输出:flag=333333
- try{code1;return1} catch{code2} finally {code3,return3}
1 public static void main(String[] args) { 2 int flag=testtrycatch(); 3 System.out.println(flag); 4 } 5 static int testtrycatch(){ 6 try { 7 int value =1/1; 8 return 111111; 9 }catch (Exception e) { 10 System.out.println("catch"+e); 11 }finally { 12 System.out.println("finally"); 13 return 666666; 14 } 15 }
无异常的返回,程序执行顺序是code1—code3—return3;
输出:flag=666666
有异常的返回,程序执行顺序是code2—code3—return3;
输出:flag=666666