2013-04-03 8 views
3

Каковы отрицательные последствия выталкивания проверенного исключения непосредственно в UncaughtExceptionHandler?Что происходит, если Thread.getUncaughtExceptionHandler(). UncaughtException вызывается напрямую?

 Thread t = new Thread() { 

      @Override 
      public void run() { 
       try { 
        verb(); 
       } catch (Exception e) { 
        getUncaughtExceptionHandler().uncaughtException(this,e); 
       } 
      } 
     }; 

Очевидно, что там (должно быть) последствия для применения - кто писал глагол() думал, что это особое состояние должно было быть обработано. Предполагая, что я готов игнорировать это, что еще пойдет не так?

Есть ли последствия для вызова ExceptionHandler до поток вот-вот завершится?

+0

Я считаю, что код строго эквивалентен 'public void run() {verb(); } '(поскольку, по определению, uncatchExceptionHandler должен улавливать необработанные исключения). – assylias

+2

Если 'verb()' выбрасывает проверенное исключение, в этом случае вы должны его поймать, а код просто позволяет обработчику по умолчанию обрабатывать его. – assylias

ответ

1

Не должно быть отрицательных последовательностей.
Если вы не явно установить пользовательский обработчик, то метод ThreadGroup будет называется which:

Этот метод определяет, если Throwable аргумент является экземпляром ThreadDeath. Если это так, ничего особенного не делается. В противном случае сообщение , содержащее имя потока, возвращенное из метода getName потока, и обратная трассировка стека, используя метод printStackTrace Throwable, печатается в стандартный поток ошибок.

Если вы установили свой заказ, наиболее вероятно, что он просто зарегистрирует что-то. Таким образом, вы увидите журнал потока и трассировки стека.
Если ваш пользовательский обработчик не делает что-то конкретное, это должно выполняться только тогда, когда поток завершается, но из OP кажется, что это не так.

+0

Если пользовательский обработчик установлен, код кажется излишним. – assylias

+1

@assylias: Я думаю, что код бессмыслен, но не имеет никаких «опасных» побочных эффектов, которые беспокоит OP – Cratylus

Смежные вопросы