项目中的异常处理应不应该获取后重新抛?


前言

工作项目中的异常处理


提示:以下是本篇文章正文内容,下面案例可供参考

一、处理异常的方法

一般在开发中,我们会有业务异常和程序异常两种。
往往我们在catch异常的时候会进行重新抛出一个新的异常。
其实这种写法是很不正确的当然由于各个开发人员水平,以及项目的紧凑度,往往会忽略这些事情。简单举例!

示例:

    public void xxx(String xxx) {
                try {
            xxx
        } catch (自定义异常 e) {
            throw new 新的异常();
        }catch (Exception e){
            throw new 新的异常();
        }
    }

二、问题

问题还是很明显的,我们就失去了对真实异常的获取,特别在公司中,我们的项目日志打印,很大程度上决定我们对项目错误的定位和解决的时长。正确抛出其异常就显得很重要。毕竟我们catch到异常后,再次抛出就是新实例化一个新的异常对象了,这也就抛去了真实的异常。

解决

其实解决方案多种,仅供参考。
一种就是如下,在catch异常是对相关异常进行打印。

    public void xxx(String xxx) {
                try {
            xxx
        } catch (自定义异常 e) {
            LogTypeEnum.ETL.error("自定义异常:{}", e);
            throw new 新的异常();
        }catch (Exception e){
            LogTypeEnum.ETL.error("异常:{}", e);
            throw new 新的异常();
        }
    }

第二种就是,将原始异常上抛,特别是在对一个方法层层调用的时候,往往由于异常处理后上抛这种方法,导致问题的定位缓慢。

当然个人编码习惯或者具体业务要求不同,(我有时候也是catch重新抛,不过都是显而易见的错误时这样)以上仅以个人观点,欢迎讨论留言。如果感兴趣,关注一下,感谢!

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 酷酷鲨 设计师:CSDN官方博客 返回首页