异常
Item 69: Use exceptions only for exceptional conditions
仅仅只针对异常情况才使用异常
不要企图使用JVM的错误判断机制来提高性能,例如使用基于异常的循环。
- JVM不会对异常模式进行优化
try-catch代码块中的语句可能会失去JVM对其的优化- 对于标准的for-each迭代,JVM会进行一定的优化
异常模式,只能用于异常的情况下,永远不要将其用在正常的控制流中。
Item 70: Use checked exceptions for recoveralbe conditions and runtime exceptions for programming errors
对于可恢复的情况,使用受检异常;对编程错误使用运行时异常
Java提供了3种可抛出的结构:
- 编译时异常:期望调用者能够恢复
- 运行时异常:用来表示编程错误,客户端没有按照约定调用服务端
- 错误:不要自定义
Error
Item 71: Avoid unnecessary use of checked exceptions
非必要情况下避免使用受检异常。