//每过一段时间,就总是会对try有点生疏,特别写了个程序来测试以下。加深印象。
// 退出一段代码(即某个Method,或者某个块),有三种方法: throw,return,以及正常执行完。
// 有时候 throw是底层抛出来的,你不处理,默认就throw了。
// TestTry.java
/** * 输出结果为: java.lang.Exception: test3() 抛出的异常 at test.TestTry.test3(TestTry.java:29) at test.TestTry.test2(TestTry.java:16) at test.TestTry.test1(TestTry.java:9) at test.TestTry.main(TestTry.java:44) test1() 执行 test2() 进入 进入 test3()。。。 test3() catch (Exception e) test2() catch (Exception e) test2() try catch 后面的内容... test1(),执行完test2之后 执行 */ public class TestTry { public static void test1(){ System.out.println("test1() 执行"); // test2(); // System.out.println("test1(),执行完test2之后 执行"); } public static void test2(){ System.out.println("test2() 进入"); try { test3(true); System.out.println("test2() try 后面的内容"); } catch (Exception e) { System.out.println("test2() catch (Exception e)"); e.printStackTrace(); } System.out.println("test2() try catch 后面的内容..."); } public static void test3(boolean isThrow) throws Exception{ System.out.println("进入 test3()。。。"); try { if (isThrow) { throw new Exception("test3() 抛出的异常"); } // System.out.println("test3() 抛出异常以后的try内容..."); } catch (Exception e) { // System.out.println("test3() catch (Exception e)"); throw e; } // System.out.println("test3() try catch 后面的内容..."); } public static void main(String[] args) { test1(); } }