//每过一段时间,就总是会对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();
}
}