代碼如下:
//每過一段時間,就總是會對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();
}
}