2012-09-06 34 views
1

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

我不认为做System.exit();里面的线程会退出整个应用程序。

有人可以提出一种方法吗?

+0

整个应用程序或者你只是想停止所有的线程? –

+0

检查这可能会帮助您http://stackoverflow.com/a/3716015/1065180 –

回答

1

try-catch放在Thread的运行方法和catch catch System.exit(0);它的工作原理。

0

一个简单的方法就是在每个线程上try {} catch {},当你捕获异常时你可能会调用退出应用程序的静态函数。

1

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

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