异常的处理规则
成功的异常处理应该实现如下4个目标:
- 使程序代码混乱最小化
- 捕获并保留诊断信息
- 通知合适的人员
- 采用合适的方式结束异常活动
不要过度使用异常
- 把异常和普通错误混淆在一起,不再编写任何错误处理代码,而是以简单地抛出异常来代替所有的错误处理
- 使用异常处理来代替流程控制
异常只应该用于处理非正常的情况,不要使用异常处理来代替正常的流程控制,对于一些完全可预知,而且处理方式清楚的错误,程序应该提供相应的错误处理代码,而不是将其笼统的成为异常
不要使用过于庞大的try代码块
避免使用Catch All语句
Catch All 语句指的是一种异常捕获模块,它可以处理程序发生的所有可能异常,但存在亮点不足:
- 所有的异常都采用相同的处理方式,这将导致无法对不同的异常分情况处理,如果要分情况处理,则需要在catch代码块中使用分支语句进行控制,得不偿失
- 这种捕获方式可能将程序中的错误、Runtime异常等可能导致程序终止的情况全部捕获到,从而“压制”了异常,如果出现了一些“关键”异常,那么此异常也会被“静悄悄”的忽略了