package combaidu; public class TestTryCatch { static int doMethod1() { // 11 int a = 10; try { a++; } finally { return a; } } // ================================================================= static int doMethod2() { // 10 int a = 10; try { return a; // @AfterReturn // 两个步骤( // 步骤一获取a的值,存储a的值给给临时变量temp // 步骤二返回临时变量temp的值(finally执行结束执行)) } finally { // @After System.out.println("doMethod2()..."); a++; } } // ============================================================ static int doMethod3() { int a = 10; try { // 故意试错,大家可以Debug F5,F6,F7测试前后顺序 int b = a / 0; // 1............ return a;// @AfterReturn // 两个步骤( // 步骤一获取a的值,存储a的值给给临时变量temp // 步骤二返回临时变量temp的值(finally执行结束执行)) } catch (Exception e) { throw new RuntimeException(e); // @AfterThrowing } finally {// @After System.out.println("doMethod3()...."); a++; } } // ====================================================== public static int doMethod4() { //20 try { return 10; } finally { return 20; } } // ====================================================== public static void main(String[] args) { //int result = doMethod1(); //System.out.println("doMethod1..="+result); int result1 = doMethod2(); System.out.println("doMethod2..="+result1); // int result2 = doMethod3(); // System.out.println("doMethod3..="+result2); //int result3 = doMethod4(); //System.out.println("doMethod4..="+result3); } } |
|
来自: 金银宝100 > 《aop的within表达式》