我目前正在开发一个基于 Java 的多线程应用程序,它提供 GUI 并通过网络访问服务。
是否有任何模式、最佳实践、库、框架或 API 用于报告基于 Java 的系统中的错误?
我目前正在开发一个基于 Java 的多线程应用程序,它提供 GUI 并通过网络访问服务。
是否有任何模式、最佳实践、库、框架或 API 用于报告基于 Java 的系统中的错误?
你有Thread.UncaughtExceptionHandler
which 用于处理线程中的错误。
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
这不是 Observer DesignPatter 的实现。
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);
}
}