為什么我代碼的不輸出test1的內(nèi)容“喝車不開酒!”??
public class ChainTest {
/**
* test1():拋出"喝大了"異常
* test2():調(diào)用test1(),捕獲"喝大了"異常,并且包裝成運(yùn)行時(shí)異常,繼續(xù)拋出
* main方法中,調(diào)用test2(),嘗試捕獲test2()方法跑出的異常
*/
public static void main(String[] args) {
ChainTest ct = new ChainTest();
try{
ct.test2();
}catch(Exception e){
e.printStackTrace();
}
}
public void test1() throws DrunkException{
throw new DrunkException("喝車不開酒!");
}
public void test2(){
try {
test1();
} catch (DrunkException e) {
// TODO Auto-generated catch block
RuntimeException newExc = new RuntimeException("司機(jī)一滴酒,親人兩行淚~~");
newExc.initCause(e);
throw newExc;
}
}
}
2018-01-07
我復(fù)制了你的程序然后按照老師的寫個DrunkException后
是可以輸出錯誤的
結(jié)果如下:
com.scu.DrunkException: 喝車不開酒!
at com.scu.ChainTest.test1(ChainTest.java:19)
at com.scu.ChainTest.test2(ChainTest.java:24)
at com.scu.ChainTest.main(ChainTest.java:12)
java.lang.RuntimeException: 司機(jī)一滴酒,親人兩行淚~~
at com.scu.ChainTest.test2(ChainTest.java:28)
at com.scu.ChainTest.main(ChainTest.java:12)
Caused by: com.scu.DrunkException: 喝車不開酒!
at com.scu.ChainTest.test1(ChainTest.java:19)
at com.scu.ChainTest.test2(ChainTest.java:24)
... 1 more
可能是軟件的問題,重啟一下可能就好了