前言
工作项目中的异常处理
提示:以下是本篇文章正文内容,下面案例可供参考
一、处理异常的方法
一般在开发中,我们会有业务异常和程序异常两种。
往往我们在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重新抛,不过都是显而易见的错误时这样)以上仅以个人观点,欢迎讨论留言。如果感兴趣,关注一下,感谢!