• 非必要情况,不要使用可控异常(针对Java),否则将会造成一个极其麻烦的修改链
    • 不要返回null值,如果要求返回的是一个列表,可以返回空列表
    • 可以使用特例模式(Special Case Pattern)减少异常
    • 必要时刻打包API,定义新的异常类
    • 统一异常处理
    • 业务逻辑尽量与异常处理隔开
    • 提倡先写try-catch-finally,可以明确代码用户期待什么,并使用测试驱动缩小异常范围