マルチスレッドのJavaアプリケーションがあります。アプリケーション全体が失敗するようにしたいのですが、スレッドの1つで例外が発生します。
System.exit();
スレッド内で実行してもアプリ全体が終了するとは思いません。
誰かが方法を提案できますか?
マルチスレッドのJavaアプリケーションがあります。アプリケーション全体が失敗するようにしたいのですが、スレッドの1つで例外が発生します。
System.exit();
スレッド内で実行してもアプリ全体が終了するとは思いません。
誰かが方法を提案できますか?
実際には、呼び出しはアプリ全体System.exit()
を終了しますが、それは通常、ライブラリコードに必要なものではありません(たとえば、単体テストが困難になります)。
より良い実装は、あなたが制御する実装で、共有の「エラーハンドラ」参照を持つことです。単体テストでは、例外をログに記録するだけで済みます。実際のアプリでは、を呼び出すことができますSystem.exit()
。
try-catch
Threadのrunメソッドに入れて、catchブロックSystem.exit(0);
に入れてください。
これを行う簡単な方法の1つは、各スレッドでtry {} catch {}を使用することです。例外をキャッチすると、アプリケーションを終了する静的関数を呼び出すことができます。