**译者注:我想提前说一下,这篇以及前两篇讲的其实都是API设计。比如这一篇就是告诉我们不要随便抛异常,比如我们构造FileInputStream的时候之所以会报Unhandled Exception(也就是checked exception),就是因为API设计者期望我们recover这种异常:
constructor
Item 59: 避免不必要的checked exceptions
Checked Exceptions是个非常好非常牛逼的特性,因为它强迫用户去修改代码,不然没法编译过,大大提升了可靠性。但是这么做很麻烦,所以要避免设计不必要的checked exceptions。
1)尽量在API内部处理掉checkedException。如输出错误信息或写日志后,结束当前程序。
2)对于那些本来就是该向外抛出异常来表明内部的某种失败的情况下,调用者尽量在调用之前确保可以成功再调用。
3)在适当的时候,使用RuntimeException。如果API不能做的更好,也许RuntimeException会更为适合。
--
完
网友评论