Выполнение программы останавливается после отлова исключения времени выполнения - PullRequest
1 голос
/ 31 мая 2019

Я выполняю код, который выбрасывает 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());            
}                                      

Actual - выполнение моей программы прекращается после получения исключения при выводе = ... getContents (); Ожидается - я хочу, чтобы моя программа продолжила выполнение после перехвата исключения.

Ответы [ 2 ]

0 голосов
/ 03 июня 2019

Наконец-то все заработало!Основным исключением было «JsonSyntaxException», а сообщением было «IllegalStateException».Таким образом, код работает, если я ловлю JsonSyntaxException вместо IllegalStateException.

0 голосов
/ 31 мая 2019

Вы можете поместить свой код в новый поток и использовать defaultUncaughtExceptionHandler класса Thread. Пожалуйста, проверьте следующий код.

 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();
       }
    } 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...