我们开发的业务系统,或者是产品,常常面临着这样的问题:
系统运行出错,但是完全不知道错误发生的位置.
我们找到了错误的位置,但是完全不知道是因为什么.
系统明明出了错误,但是就是看不到错误堆栈信息....由于某种原因,我们的程序无法保存到数据库.
一些程序员错误的开发了代码,导致保存过程中出现异常,比如NPE....可以,但是那样显得太多余了.因为业务逻辑处理失败的时候,根据我们需求,我们只需要通知用户失败的原因(通常应该是一段字符串),以及服务器受理失败的一个状态码(有时可能不需要状态码,这要看你的设计了),这样这需要一个包含原因属性的异常即可满足我们需求...代码错误,这类异常用于描述开发的代码错误,例如NPE,ILLARG,都属于程序员制造的BUG.
专有异常,多用于特定业务场景,用于描述指定作业出现意外情况无法预先处理....各类异常必须要有单独的日志记录,或者分级,分类可管理.有的时候仅仅想给三方运维看到逻辑异常.
写在后面的注意
异常设计的初衷是解决程序运行中的各种意外情况,且异常的处理效率比条件判断方式要低很多.