Глобальные обработчики исключений в Java - PullRequest
7 голосов
/ 12 мая 2010

Я думаю о настройке глобального обработчика исключений по умолчанию для моего мобильного приложения (Android) (использующего синтаксис Java) с использованием вызова Thread.setDefaultUncaughtExceptionHandler(...). Я имею в виду просто отобразить диалог оповещения с соответствующим сообщением пользователю.

Существуют ли какие-либо ошибки, предостережения и правила, которым нужно следовать при установке DefaultExceptionHandlers? Какие-либо передовые практики, такие как проверка того, что процесс завершен, полная трассировка стека записывается в журналы и т. Д.?

Приветствуются ссылки на документацию, учебные пособия и т. Д., Которые могут пролить свет на это.

Спасибо.

Ответы [ 2 ]

2 голосов
/ 12 мая 2010
  • Имя немного вводит в заблуждение, потому что при использовании этого метода будет установлен обработчик исключений по умолчанию для всех потоков.
  • Убедитесь, что из вашего обработчика исключений не может быть исключений.
  • Если вы работаете с GUI из обработчика исключений, убедитесь, что вы делаете это из правильного потока.
  • Неперехваченное исключение остановит только тот поток, в котором произошло исключение, если это также приведет к завершению процесса, зависит от любых других потоков, которые могут быть запущены.
1 голос
/ 12 мая 2010

Одна из возможных проблем с созданием глобального обработчика исключений заключается в том, что вы можете застрять в цикле исключений - некоторые исключения будут вызываться неоднократно, пока программа не завершится.

Если вы имеете в виду, что, когда выдается исключение, отображается сообщение, то приложение закрывается, тогда все будет в порядке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...