複数の実行中のスレッドで例外を処理する方法を知りたい Java アプリを開発しています。例はありますか?ありがとう
1 に答える
0
あなたの質問を正しく理解していれば、未処理の例外が原因でスレッドが終了したことを検出する方法を尋ねています。
そのために実装する必要がありますUncaughtExceptionHandler
。ハンドラーの実装に入れることができる最も簡単で便利なアクティビティは、キャッチされなかった例外をログに記録することです。
と一緒に使用されるこのサンプルの 1 つ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 に答える