我正在开发一个 java 应用程序,我想知道如何处理多个正在运行的线程上的异常。有什么例子吗?谢谢
问问题
157 次
1 回答
0
如果我正确理解了您的问题,您会问如何检测由于未处理的异常而完成的线程。
您需要为此实施UncaughtExceptionHandler
。您可以在处理程序实现中放入的最简单有用的活动是记录未捕获的异常。
其中一个示例,与Executor
:
final Thread.UncaughtExceptionHandler DEFAULT_HANDLER = new Thread.UncaughtExceptionHandler() {
@Override
public void uncaughtException(Thread t, Throwable e) {
log.error("", e);
}
};
ExecutorService executorService = Executors.newCachedThreadPool(new ThreadFactory() {
@Override
public Thread newThread(Runnable r) {
Thread t = new Thread(r);
t.setUncaughtExceptionHandler(DEFAULT_HANDLER);
return t;
}
});
executorService.execute(new Runnable() {
@Override
public void run() {
throw new RuntimeException("log me");
}
});
于 2013-06-06T11:07:16.033 回答