我们开发的业务系统,或者是产品,常常面临着这样的问题:
系统运行出错,但是完全不知道错误发生的位置.
我们找到了错误的位置,但是完全不知道是因为什么.
系统明明出了错误,但是就是看不到错误堆栈信息....什么情况需要自定义异常
经常看到一些项目,在全局定义一个 AppException,然后所有地方都只抛出这个异常,并且把捕获的异常case到这个AppException中.会有如下问题:
浪费log日志存储空间...);
return json;
}
}
在这个时候,我们就可以很轻松的处理各种情况了....代码错误,这类异常用于描述开发的代码错误,例如NPE,ILLARG,都属于程序员制造的BUG.
专有异常,多用于特定业务场景,用于描述指定作业出现意外情况无法预先处理....各类异常必须要有单独的日志记录,或者分级,分类可管理.有的时候仅仅想给三方运维看到逻辑异常.
写在后面的注意
异常设计的初衷是解决程序运行中的各种意外情况,且异常的处理效率比条件判断方式要低很多.