Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我很好奇以下是如何可能的。
catch (Exception e) { e.printStackTrace(); }
当我调试我的代码时,他跳进了 catch 博客——到目前为止一切都很好——但是我检查了它是什么类型的异常,它是 e = null 吗?!
这怎么可能呢?我有一个异常但异常为空?
问候,
可能是调试器或虚拟机的问题——异常是延迟加载的,也就是说,直到需要时才加载异常。只要没有调用异常中的方法,就不会加载其数据。当第一个方法被调用时,虚拟机填充 异常字段。
在执行或使用调试器从该异常执行一种方法后,您应该会看到printStackTrace异常(例如 Eclipse 中的表达式视图)。
printStackTrace