码迷,mamicode.com
首页 > 其他好文 > 详细

封装异常处理之坑

时间:2020-06-26 16:44:05      阅读:65      评论:0      收藏:0      [点我收藏+]

标签:static   mit   exce   exp   exception   div   str   查看   处理   

    public static void main(String []f) {
        try {
            test();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    private static void test() {
        try {
            int i = 1 / 0;
        } catch (Exception e) {
            throw new RuntimeException("hh");
        }
    }

  

java.lang.RuntimeException: hh  msg遗失

at com.citi.risk.scef.limitexposure.config.exception.DBException.test(DBException.java:39)    第一堆栈:throw new RuntimeException("hh");遗失了第一现场
at com.citi.risk.scef.limitexposure.config.exception.DBException.main(DBException.java:29)

小结:msg遗失,堆栈第一现场遗失

 

    private static void test() {
        try {
            int i = 1 / 0;
        } catch (Exception e) {
            throw new RuntimeException("hh", e);
        }
    }

  

java.lang.RuntimeException: hh
at com.citi.risk.scef.limitexposure.config.exception.DBException.test(DBException.java:39)  第一堆栈仍然是throw new RuntimeException("hh")
at com.citi.risk.scef.limitexposure.config.exception.DBException.main(DBException.java:29)
Caused by: java.lang.ArithmeticException: / by zero
at com.citi.risk.scef.limitexposure.config.exception.DBException.test(DBException.java:37)   好在第一现场出现在Caused By中,但莫名其妙堆栈变长了,不利于查看
... 1 more

 

msg遗失,但仍可在Caused By中,找到堆栈第一现场

 

    private static void test() {
        try {
            int i = 1 / 0;
        } catch (Exception e) {
            throw e;
        }
    }

  

java.lang.ArithmeticException: / by zero
at com.citi.risk.scef.limitexposure.config.exception.DBException.test(DBException.java:37)  第一堆栈为1/0
at com.citi.risk.scef.limitexposure.config.exception.DBException.main(DBException.java:29)

 

msg原汁原味,堆栈第一现场在第一行

 

实践中

1)优先直接抛原始异常

2)若就是需要封装原始异常,务必将原始异常e传入封装异常,否则遭到堆栈第一现场遗失

封装异常处理之坑

标签:static   mit   exce   exp   exception   div   str   查看   处理   

原文地址:https://www.cnblogs.com/silyvin/p/13195116.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!