Java异常体系基于Throwable类,其子类Error表示严重系统问题如OutOfMemoryError,通常不处理;Exception表示可处理异常,分为检查异常(如IOException)需强制处理和非检查异常(如NullPointerException)由程序逻辑错误导致,编译器不强制捕获。

Java中的异常处理机制基于一个完整的类继承体系,其核心是
Throwable类。所有异常和错误都直接或间接继承自这个类,它是整个异常体系的根。
Throwable:异常体系的顶层父类
Throwable是Java中所有可抛出异常的超类。只有它的子类才能被
throw关键字抛出,也才能被
try-catch语句捕获。它有两个主要子类:
Error和
Exception。
Error:严重系统问题,通常不处理
Error表示程序无法处理的严重问题,比如虚拟机错误(
OutOfMemoryError)、栈溢出(
StackOverflowError)等。这类问题一般与程序逻辑无关,由JVM抛出,应用程序通常不做捕获或处理。
Exception:程序可处理的异常
Exception代表程序运行中可能遇到的异常情况,可以分为两大类:
立即学习“Java免费学习笔记(深入)”;
-
检查异常(Checked Exception):继承自
Exception
但不是RuntimeException
的子类。编译器强制要求处理,例如IOException
、SQLException
。 -
非检查异常(Unchecked Exception):包括
RuntimeException
及其子类,如NullPointerException
、ArrayIndexOutOfBoundsException
。编译器不强制处理,但建议合理预防。
理解这一继承结构有助于正确设计异常处理逻辑。比如,方法声明中使用
throws时应明确检查异常;而运行时异常更多依赖编码规范和边界判断来避免。
基本上就这些。掌握
Throwable → Error / Exception → RuntimeException这条主线,就能清晰区分哪些异常需要显式处理,哪些属于程序缺陷导致的问题。










