我正在执行引发IllegalStateException的代码。我想捕获该异常并继续执行程序,但是遇到此异常时,我的程序将停止执行。
我尝试将try{} catch{}
块放置在多个位置。另外,尝试使用
Platform.runLater(new Runnable(){
@Override
public void run() { }
});
捕获此异常。
try {
List<ItemStandardFields> output = response.body().getContents();
Platform.runLater(new Runnable(){
@Override
public void run() { }
});
// some code
}catch(Exception ex){
log.error(ex.getLocalizedMessage());
}
实际-我的程序在输出出现异常后停止执行= ... getContents(); 预期-我希望程序在捕获异常后继续执行。
答案 0 :(得分:0)
您可以将代码放入新线程中,并使用Thread类的defaultUncaughtExceptionHandler。请检查以下代码。
public static void main(String[] args) {
Thread thread = new Thread(new MyThread());
thread.setDefaultUncaughtExceptionHandler(new Thread.
UncaughtExceptionHandler() {
public void uncaughtException(Thread t, Throwable e) {
log.error(ex.getLocalizedMessage());
}
});
thread.start();
}
}
class MyThread implements Runnable {
public void run() {
List<ItemStandardFields> output = response.body().getContents();
}
}
答案 1 :(得分:0)
终于成功了!主要异常是“ JsonSyntaxException”,消息是“ IllegalStateException”。因此,如果我捕获了JsonSyntaxException而不是IllegalStateException,则代码可以正常工作。