0

我很好奇以下是如何可能的。

catch (Exception e) {
    e.printStackTrace();
}

当我调试我的代码时,他跳进了 catch 博客——到目前为止一切都很好——但是我检查了它是什么类型的异常,它是 e = null 吗?!

这怎么可能呢?我有一个异常但异常为空?

问候,

4

1 回答 1

0

可能是调试器或虚拟机的问题——异常是延迟加载的,也就是说,直到需要时才加载异常。只要没有调用异常中的方法,就不会加载其数据。当第一个方法被调用时,虚拟机填充 异常字段。

在执行或使用调试器从该异常执行一种方法后,您应该会看到printStackTrace异常(例如 Eclipse 中的表达式视图)。

于 2013-11-14T13:01:44.157 回答