UncaughtExceptionHandlerをTimerTaskに添付することはできますか? (他よりThread.setDefaultUncaughtExceptionHandlerを呼び出すことによって())UncaughtExceptionHandlerをTimerTaskに添付する
乾杯
リッチ
UncaughtExceptionHandlerをTimerTaskに添付することはできますか? (他よりThread.setDefaultUncaughtExceptionHandlerを呼び出すことによって())UncaughtExceptionHandlerをTimerTaskに添付する
乾杯
リッチ
あなたはrun
からThrowable
をキャッチTimerTask
プロキシを書くことができます。
public final class TimerTaskCatcher extends TimerTask {
private final TimerTask orig;
private final Thread.UncaughtExceptionHandler handler;
public TimerTaskCatcher(
TimerTask orig,
Thread.UncaughtExceptionHandler handler
} {
if (orig == null || handler == null) {
throw new NullPointerException();
}
this.orig = orig;
this.handler = handler;
}
@Override public boolean cancel() {
return orig.cancel();
}
@Override public void run() {
try {
orig.run();
} catch (Throwable exc) {
handler.uncaughtException(Thread.currentThread(), exc);
}
}
@Override public long scheduledExecutionTime() {
return orig.scheduledExecutionTime();
}
}
ところで:あなたはjava.util.concurrent
代わりのTimer
を使用して検討する必要があります。
はい、そうですね。 Thread
class
にインスタンスメソッド(setUncaughtExceptionHandler)があり、そのスレッドのUncaughtExceptionHandler
が設定されています。
public void run() {
Thread.currentThread().setUncaughtExceptionHandler(eh);
}
:あなたはこのような何かを行うことができます
TimerTask
のご
run
方法で