错误处理不应使代码逻辑发生混乱。
处理错误的技巧:
- 使用异常而非返回码
- 先写Try-Catch-Finally语句
- 使用不可控异常
可控异常的代价违反开放/闭合原则 - 给出异常发生的环境说明
抛出的每个异常,都应当提供足够的环境说明。以便判断错误的来源和处所。 堆栈踪迹并不能告诉你失败操作的初衷。
应创建信息充分的错误消息,并和异常一起传递出去。消息应包括失败的操作和失败类型 - 依调用者需要定义异常类
我们在应用程序中定义异常类时,最重要的是考虑应该是他们如何被捕获。 - 定义常规流程
特例模式: 创建一个类或配置一个对象,来处理特例 - 别返回null值
返回null值,不如抛出异常或返回特例对象 - 别传递null值
总结:
整洁代码是可读的,但也要强固。可读与强固并不冲突,如果将错误处理隔离看待,独立于主要逻辑之外,就能写出强固而整洁的代码。提高代码的整洁度。