java中的异常链

1.自定义新的异常

public class DrunkException extends Exception {
    public DrunkException(String message){
        super(message);
    }
    public DrunkException(){}
}

2.测试异常链

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){
            RuntimeException newExc=new RuntimeException("司机一滴酒,情人两行泪");
            newExc.initCause(e);
            throw newExc;
        }
    }
}

3.运行结果


image.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,958评论 19 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,404评论 25 708
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 46,958评论 6 342
  • 沈西西下定决心要来个离家出走。 几个月前,沈西西就在盘算着一场离家出走的计划,最后的期限是自己三十岁生日的那天。 ...
    summer恋空阅读 290评论 0 0
  • 40号交作业,希望通过训练营能看到自己的进步
    随心自在TT阅读 342评论 1 2