《Efffective Java》-异常

61 阅读1分钟

异常

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

非必要情况下避免使用受检异常。