1

我有一个多线程 Java 应用程序。我希望整个应用程序失败是线程之一遇到任何异常。

我不认为System.exit();在线程内部做会退出整个应用程序。

有人可以建议一种方法吗?

4

3 回答 3

1

实际上,调用System.exit() 退出整个应用程序,但这通常不是您在库代码中想要的(例如,它使单元测试变得困难)。

一个更好的实现是拥有一个共享的“错误处理程序”引用,以及您控制的实现。在单元测试中,您可以只记录异常。在您的真实应用中,您可以调用System.exit().

于 2012-09-06T18:54:20.277 回答
1

放入try-catchThread 的 run 方法并在 catch 块中System.exit(0);它可以工作。

于 2012-09-06T18:55:41.900 回答
0

一种简单的方法是在每个线程上尝试{} catch{},当您捕获异常时,您可以调用退出应用程序的静态函数。

于 2012-09-06T18:53:22.683 回答