Effective Java - 只针对异常的情况才使用异常

第69条 只针对异常的情况才使用异常

  1. 异常应该只用于异常的情况下,它们永远不应该用于控制正常的代码执行流程
  2. 如果类具状态依赖(state-dependent)的方法,即只有在特定的不可预知的条件下才可以被调用的方法,这个类往往也应该有个单独的状态测试(state-testing)方法,即指示是否可以调用这个状态相关的方法。例如,Iterator接口有一个状态依赖的next方法,和相应的状态测试方法hasNext
  3. 另一种提供单独的状态测试方法的做法是让状态依赖的方法返回空的Optional,或者如果它不能执行所需要的计算,那么就可以返回一个可识别的值,比如null

思考

  1. 我个人倾向于使用返回类似Optional的方法,而不是像Iterator一样抽两个方法。一个是有可能会有线程安全问题(两个方法没有原子性),另一点就是它的使用被分开了,需要查看更多的文档说明才能知道如何使用,而不是直接通过方法名和返回类型而大概知道如何使用
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容