私は現在、GUI を提供し、ネットワーク経由でサービスにアクセスする Java ベースのマルチスレッド アプリケーションを開発しています。
Java ベースのシステムでエラーを報告するためのパターン、ベスト プラクティス、ライブラリ、フレームワーク、または API はありますか?
私は現在、GUI を提供し、ネットワーク経由でサービスにアクセスする Java ベースのマルチスレッド アプリケーションを開発しています。
Java ベースのシステムでエラーを報告するためのパターン、ベスト プラクティス、ライブラリ、フレームワーク、または API はありますか?
Thread.UncaughtExceptionHandler
スレッドのエラーを処理するために使用されるがあります。
Thread t = new Thread(task);
// add exception handler
t.setUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler(){
@Override
public void uncaughtException(Thread t, Throwable e) {
// do exception handling
}
});
t.start();
Task Tracker
ObserverDesignPatterの実装ではない自分を書くことができます。
public class TaskTracker {
private final List<ErrorListener> listeners = new ArrayList<ErrorListener>();
public Runnable wrap(final Runnable r) {
return new Runnable() {
public void run() {
try { r.run(); }
catch (Throwable t) {
for (ErrorListener el : listeners)
el.error(t, this);
}
}
};
}
public void addListener(ErrorListener el) { listeners.add(el); }
public void removeListener(ErrorListener el) { listeners.remove(el); }
public static interface ErrorListener {
void error(Throwable t, Runnable r);
}
}