我有一个多线程的Java应用程序。我希望整个应用程序失败是线程遇到任何异常之一。如何检查一个线程是否失败?
我不认为做System.exit();
里面的线程会退出整个应用程序。
有人可以提出一种方法吗?
我有一个多线程的Java应用程序。我希望整个应用程序失败是线程遇到任何异常之一。如何检查一个线程是否失败?
我不认为做System.exit();
里面的线程会退出整个应用程序。
有人可以提出一种方法吗?
把try-catch
放在Thread的运行方法和catch catch System.exit(0);
它的工作原理。
一个简单的方法就是在每个线程上try {} catch {},当你捕获异常时你可能会调用退出应用程序的静态函数。
实际上,调用System.exit()
将退出整个应用程序,但是这通常不是你在库代码想要什么(例如,它使得单元测试困难)。
更好的实现是拥有一个共享的“错误处理程序”引用,并带有您控制的实现。在单元测试中,您可以只记录异常。在您的真实应用程序中,您可以拨打System.exit()
。
整个应用程序或者你只是想停止所有的线程? –
检查这可能会帮助您http://stackoverflow.com/a/3716015/1065180 –