可运行任务解析传入的 xml 文件并从不同的类调用。有时解析可能会失败并抛出异常。即使发生异常,该任务也应该运行。我尝试使用未捕获的异常处理程序在新线程中重新启动相同的任务。但想要更多的想法。
类调用线程:(调用线程)
在新线程中重新启动相同的任务可以正常工作,但可能在不导致线程退出的情况下处理异常应该是这种方式
Thread fileProcessThread = new Thread(FileProcessor);
fileProcessorThread.setUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler()
{
@Override
public void uncaughtException (Thread arg0, Throwable arg1)
{
FileProcessor newObject = new FileProcessorTask();
Thread t = new Thread(newObject);
t.start();
}
});
fileProcessor.start();
任务类:
public void run() {
try {
xmlparser.parse(incomingXmlFile);
}
catch (Exception e) {
Thread.currentThread.getUncaughtExceptionalHandler().uncaughtException(Thread.currentThread(), e);
// this invokes uncaughtException to restart thread ?
}
}
我有一个监视服务(文件目录扫描)正在运行,所以我一直需要这个任务,即使线程终止。