Java 中的异常传播

2025年04月24日 | 阅读 1 分钟

异常首先从堆栈顶部抛出,如果未被捕获,它将沿着调用堆栈向下传播到前一个方法。如果前一个方法也没有捕获,异常会再次向下传播到更前一个方法,依此类推,直到异常被捕获,或者直到到达调用堆栈的最底部。这被称为异常传播。

注意:默认情况下,未检查异常会在调用链中转发(传播)。

异常传播示例

TestExceptionPropagation1.java

输出

exception handled
       normal flow...

在上面的示例中,异常发生在 m() 方法中,并且没有被处理,因此它被传播到前一个 n() 方法,在 n() 方法中也没有被处理,它再次被传播到 p() 方法,在 p() 方法中异常被处理了。

异常可以在调用堆栈中的任何方法中处理,可以在 main() 方法、p() 方法、n() 方法或 m() 方法中处理。

exception propagation

注意:默认情况下,已检查异常不会在调用链中转发(传播)。

异常传播示例

TestExceptionPropagation1.java

输出

Compile Time Error

下一个主题Java - throws