← 学习中心

Java 基础:异常体系与 Error/Exception

Throwable 体系,受检与非受检异常,try-with-resources,以及异常处理的性能与设计。

本节你将能

理清异常继承体系,区分 Error 与 Exception,写出规范的异常处理。

核心要点

  • Throwable 分 Error(JVM 严重错误,不该捕获)与 Exception(可处理)。
  • Exception 分受检(编译期强制 try/catch 或 throws)与非受检(RuntimeException,如 NPE)。
  • try-with-resources 自动关闭实现 AutoCloseable 的资源,避免泄露。
  • 异常开销大:栈轨迹快照成本高,热路径不要用异常做控制流。
  • finally 在 return 前执行,但 finally 的 return 会覆盖 try 的返回值。

面试连招

常被追问:NoClassDefFoundError 与 ClassNotFoundException 区别?finally 与 return 顺序?

常见坑

吞掉异常(空 catch);用异常做正常流程控制;在 finally 中 return。

Java 基础:异常体系与 Error/Exception | 必学必会