package com.s.example; /** * 测试try cache finally 执行顺序以及return * @author jacksang * */ public class Test { public static void main(String[] args) { int i; i = testOne(); System.out.println(i); i = testTwo(); System.out.println(i); } /** * 在try出现异常finally出现return是否会执行 */ public static int testOne(){ try { System.out.println("try"); throw new RuntimeException(); } catch(Exception e) { System.out.println("catch"); } finally { System.out.println("finally"); return 1; } return 2; } //执行顺序 // 1. 打印"try" // 2. 遇到throw RuntimeException // 3. 捕获异常信息走catch,打印"catch" // 4. 最后执行finally,并且返回1 // 5. main函数中输出1 (finally中包含return后外部return不执行) /** * try中return会不会执行finally */ public static int testTwo(){ try { System.out.println("try"); return 1; } catch(Exception e) { System.out.println("catch"); } finally { System.out.println("finally"); } return 2; } //执行顺序 // 1. 打印"try" // 2. 最后执行finally,并且返回1 // 3. main函数中输出1 (finally中包含return后外部return不执行) //注意如果在finally中包含return,将直接返回,try中return失效 }
[随记] try catch finally return 执行顺序
猜你喜欢
转载自jacksang.iteye.com/blog/2287967
今日推荐
周排行