您的位置:首页 > Web前端

Effective Java 学习笔记(第57条:只针对异常的情况才使用异常)

2014-04-03 16:42 274 查看
企图利用java的错误判断机制来提高性能是错误的:1.因为异常机制的设计初衷是用于不正常的情形,所以很少会有JVM实现试图对它们进行优化,使得与显式的测试一样快速。2.把代码放在try-catch块中反而阻止了现在JVM实现本来可能要执行的某些特定优化。3.对数组进行遍历的标准模式并不会导致冗余的检查。有些现在的JVM实现会将它们优化掉。异常应该只用于异常的情况下;它们永远不应该用于正常的流程控制。设计良好的API不应该强迫它的客户端为了正常的控制流而使用异常。“状态测试方法”和“可识别的返回值”:如果对象将在缺少外部同步的情况下被并发访问,或者可被外界改变状态,使用可被识别的返回值可能是很有必要的,因为在调用“测试状态”方法和调用对应的“状态相关”方法的时间间隔之中,对象的状态有可能发生变化。如果单独的“状态测试”方法必须重复“状态相关”方法的工作,从性能的角度考虑,就应该使用可被识别的返回值。如果所有其他方面都是等同的,那么“状态测试”方法则略犹豫可被识别的返回值。总而言之,异常是为了在异常情况下使用而设计的。不要将它们用于普通的控制流,也不要编写迫使他们这么做的API。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: