Java异常处理深入解析
1. 栈展开与从异常对象获取信息
当在特定方法中抛出异常但未被捕获时,方法调用栈会进行“展开”操作,程序会尝试在下一个外部的 try 块中捕获该异常,这个过程被称为栈展开。栈展开意味着未捕获异常的方法会终止,该方法中的所有局部变量会超出作用域,控制权会返回到最初调用该方法的语句。如果该语句被 try 块包围,程序会尝试捕获异常;若没有被 try 块包围或者异常仍未被捕获,则会再次进行栈展开。
以下是一个展示栈展开和从异常对象获取数据的示例代码:
// Fig. 11.6: UsingExceptions.java
// Stack unwinding and obtaining data from an exception object.
public class UsingExceptions {
public static void main(String[] args) {
try {
method1();
}
catch (Exception exception) { // catch exception thrown in method1
System.err.printf("%s%n%n", exception.getMessage());
exception.printStackTrace();
// obtain the stack-trac
超级会员免费看
订阅专栏 解锁全文
1284

被折叠的 条评论
为什么被折叠?



