gpt4 book ai didi

java - 没有堆栈跟踪的线程异常

转载 作者:行者123 更新时间:2023-11-30 08:12:42 25 4
gpt4 key购买 nike

我设置了全局异常处理程序:

Thread.setDefaultUncaughtExceptionHandler(new DefaultUncaughtExceptionHandler());

实现非常简单:

public class DefaultUncaughtExceptionHandler implements UncaughtExceptionHandler {

public static final Logger logger = LoggerFactory.getLogger(DefaultUncaughtExceptionHandler.class);

@Override
public void uncaughtException(Thread t, Throwable e) {
logger.error("Uncaught Exception detected in thread {}", t, e);
}

有时我会在日志中多次看到这个异常:

[AWT-EventQueue-0] DefaultUncaughtExceptionHandler - Uncaught Exception detected in thread Thread[AWT-EventQueue-0,6,main]
java.lang.ArrayIndexOutOfBoundsException: null

但我找不到它的来源。

你怎么看,为什么 stacktrace 是空的?它不应该为空,所有线程必须至少从父“主”线程或任何其他线程创建。

最佳答案

JIT 编译器可以进行一些优化并“丢失”堆栈跟踪。

您可以使用以下 JVM 标志来禁用此优化:

-XX:-OmitStackTraceInFastThrow

引用: http://jawspeak.com/2010/05/26/hotspot-caused-exceptions-to-lose-their-stack-traces-in-production-and-the-fix/

关于java - 没有堆栈跟踪的线程异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30309975/

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