gpt4 book ai didi

java - JVM - 在没有显式调用的情况下打印堆栈跟踪

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:33:51 25 4
gpt4 key购买 nike

Java 中有没有一种方法可以在不修改代码的情况下打印 catch block 中任何异常的堆栈跟踪。有人告诉我,有一个 JVM arg 可用于生成所有异常的堆栈跟踪以进行调试,尽管我找不到任何关于此的文档。我能想到的唯一解决方案是使用 aspectj 并在创建的任何异常上创建一个方面并打印堆栈跟踪。我希望有比方面更好的解决方案。

谢谢,史蒂夫。

--编辑--所以我想知道的是假设我有这段代码: 尝试 { 抛出新的异常(); } catch (异常e){ //忽略异常

我想查看 e.printStackTrace(),即使没有调用它。这有助于调试我看到的 jvm 崩溃,并且隐藏了很多错误。

最佳答案

正如 Marko Topolnik 所说,记录任何异常可能需要一些工作,但您也可以实现自定义未捕获异常处理程序来处理未捕获异常。

Thread.setDefaultUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() {
private final Logger log = Logger.getLogger("EXCEPTION");

public void uncaughtException(final Thread t, final Throwable e) {
log.logp(Level.SEVERE, "EXCEPTION", "", "Unhandled exception in thread " + t.getName() + ": ", e);
}
});

关于java - JVM - 在没有显式调用的情况下打印堆栈跟踪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10521765/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com