为什么我代码的不输出test1的内容“喝车不开酒!”??

来源:1-7 Java 中的异常链

沉阿

2018-01-07 16:24

public class ChainTest {

/**

* test1():抛出"喝大了"异常

* test2():调用test1(),捕获"喝大了"异常,并且包装成运行时异常,继续抛出

* main方法中,调用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("司机一滴酒,亲人两行泪~~");

newExc.initCause(e);

throw newExc;

}

}

}


写回答 关注

1回答

  • 传说中的高手
    2018-01-07 20:07:41

    我复制了你的程序然后按照老师的写个DrunkException后

    是可以输出错误的

    结果如下:

    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: 司机一滴酒,亲人两行泪~~

    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

    可能是软件的问题,重启一下可能就好了

    传说中的高手

    对了我在test2()的catch里也加了一个printStackTrace()

    2018-01-07 20:08:54

    共 1 条回复 >

Java入门第三季

Java中你必须懂得常用技能,不容错过的精彩,快来加入吧

409792 学习 · 4340 问题

查看课程

相似问题