我问了这个问题:Printing the stack trace from a newly created thread when an unchecked exception is thrown in Eclipse
并在用户 Gray 的回复中得到了这个:“默认情况下,没有任何东西可以打印线程池线程抛出的异常。”
我想知道这是为什么。让线程池线程抛出未经检查的异常并在默认情况下不打印任何错误而停止工作对我来说似乎令人困惑。
最佳答案
因为如果它打印它,另一个开发人员会问为什么它会用不需要的堆栈跟踪削弱程序的输出,并通过将堆栈跟踪写入同步 PrintStream 来大幅降低吞吐量。如果您希望打印异常,请自行打印。没有什么能阻止你这样做。
你得到的答案显示了如何做到这一点。您还可以使用另一个可捕获运行时异常的可运行对象包装所有可运行对象,在抛出异常时打印它们,然后重新抛出它们。
关于java - 打印线程池线程抛出的异常,Java 的默认行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16978705/