Java中Exception是处理运行时错误的核心机制,属于Throwable的子类;2. 异常分为检查型(如IOException)和非检查型(如NullPointerException);3. 通过try-catch-finally和throws进行异常处理,throw用于主动抛出异常;4. 可自定义异常类继承Exception或RuntimeException;5. 未捕获的异常会向上抛出,printStackTrace可追踪调用栈;6. 掌握异常机制提升程序健壮性和调试效率。

在Java中,Exception 是处理程序运行过程中可能出现错误的核心机制。它属于 Throwable 类的子类,用于表示程序可以捕获和处理的问题。理解 Exception 的核心概念有助于写出更健壮、可维护的代码。
异常的分类
Java 中的异常主要分为两大类:
- 检查型异常(Checked Exception):继承自 Exception 但不包括 RuntimeException。这类异常在编译阶段就必须处理,否则无法通过编译。例如:IOException、SQLException。
- 非检查型异常(Unchecked Exception):包括 RuntimeException 及其子类,以及 Error。它们在编译时不会强制要求处理,但在运行时可能发生。例如:NullPointerException、ArrayIndexOutOfBoundsException。
异常处理机制
Java 提供了 try-catch-finally 和 throws 关键字来管理异常。
- try-catch:将可能出错的代码放在 try 块中,用 catch 捕获并处理特定类型的异常。
- finally:无论是否发生异常,finally 块中的代码都会执行,常用于释放资源。
- throws:声明一个方法可能抛出的检查型异常,由调用者决定如何处理。
- throw:主动抛出一个异常实例,用于自定义错误场景。
自定义异常
当内置异常无法满足业务需求时,可以创建自定义异常类。
立即学习“Java免费学习笔记(深入)”;
- 继承 Exception 或 RuntimeException。
- 通常提供构造方法传递错误信息。
- 示例:
public class InsufficientFundsException extends Exception {
public InsufficientFundsException(String message) {
super(message);
}
}
异常的传播与栈追踪
当异常未被当前方法捕获时,会向调用链上层抛出,直到被处理或导致程序终止。
- 使用 printStackTrace() 可查看异常发生的完整调用路径。
- JVM 会打印异常类型、消息和每一层方法调用的位置,帮助定位问题根源。
基本上就这些。掌握 Exception 的分类、处理方式和设计原则,能有效提升程序的容错能力和调试效率。










