我目前开发了一个基于Java的多线程应用程序,它提供GUI并通过网络访问服务。
在基于Java的系统中,是否有用于报告错误的模式、最佳实践、库、框架或API?
发布于 2012-06-13 19:43:52
您有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();发布于 2012-06-13 19:49:49
您可以编写自己的Task Tracker,它不是观察者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);
}
}https://stackoverflow.com/questions/11014042
复制相似问题