我有一个多线程 Java 应用程序。我希望整个应用程序失败是线程之一遇到任何异常。
我不认为System.exit();
在线程内部做会退出整个应用程序。
有人可以建议一种方法吗?
我有一个多线程 Java 应用程序。我希望整个应用程序失败是线程之一遇到任何异常。
我不认为System.exit();
在线程内部做会退出整个应用程序。
有人可以建议一种方法吗?
实际上,调用System.exit()
将退出整个应用程序,但这通常不是您在库代码中想要的(例如,它使单元测试变得困难)。
一个更好的实现是拥有一个共享的“错误处理程序”引用,以及您控制的实现。在单元测试中,您可以只记录异常。在您的真实应用中,您可以调用System.exit()
.
放入try-catch
Thread 的 run 方法并在 catch 块中System.exit(0);
它可以工作。
一种简单的方法是在每个线程上尝试{} catch{},当您捕获异常时,您可以调用退出应用程序的静态函数。