-
先写try-catch-finally语句
- 从某种意义上try代码块就像是事务。catch代码块将程序维持在一种持续状态。在编写可能出现异常的语句时,最好先写这个try/catch代码块。这样可以事先划定一个范围。
-
给出异常发生的环境说明
- 抛出的每个异常,都应当提供足够的环境说明,以便判断错误的来源和处所;
- 应创建信息充分的错误信息,并和异常一起传递过去。在消息中,包括失败的操作和失败类型;
-
依调用者需要定义异常类
-
当我们在应用程序中定义异常类时,最重要的考虑应该是它们如何被捕获;
-
不太好的示例:
- 对此示例进行修改:
-
-
LocalPort就是一个简单的打包类,捕获并翻译由ACMEPort类抛出的异常: |
- 将第三方API打包是个良好的实践手段。打包一个第三方API,可以降低对它的依赖,可以不太痛苦的改用其他代码库;
-
别返回null值
- 返回Null是给自己或是调用者增加工作量,因为每次我们都要判断是否为Null;
- 如果要在方法中返回null,不如直接抛出一个异常;
- 在调用第三方返回null的方法时,可以对这个方法进行打包;
-
别传递null值
- 除非API要求你向它传递NULL,否则尽可能避免传递null值;