捕获运行时异常后程序执行停止

时间:2019-05-31 17:00:44

标签: java exception

我正在执行引发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(); 预期-我希望程序在捕获异常后继续执行。

2 个答案:

答案 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,则代码可以正常工作。

相关问题