я относительно новичок в stackoverflow.
Я реализовал собственный обработчик uncaughtException в своем приложении для Android. Проблема в том, что метод uncaughtException вызывается несколько раз, когда в одном из моих действий возникает одно необработанное исключение.
Вот весь мой класс, отвечающий за обработку неперехваченного исключения:
public class CustomUncaughtExceptionHandler implements java.lang.Thread.UncaughtExceptionHandler {
private UncaughtExceptionHandler defaultUEH;
public CustomUncaughtExceptionHandler(UncaughtExceptionHandler defaultHandler) {
defaultUEH = defaultHandler;
Log.w("cmhandler","setted default UEH");
}
public void uncaughtException(Thread thread, Throwable exception) {
Log.w("cmhandler","uncaughtException");
Helper.Log_e("CustomUncaughtExceptionHandler", "uncaughtException", exception);
defaultUEH.uncaughtException(thread, exception);
}
}
Строка Helper.Log_e("CustomUncaughtExceptionHandler", "uncaughtException", exception);
сохраняет исключение только в файле и там, где исключений не возникает.
Я реализовал класс в своей деятельности следующим образом:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Thread.setDefaultUncaughtExceptionHandler(new CustomUncaughtExceptionHandler(Thread.getDefaultUncaughtExceptionHandler()));
Когда я запускаю свое приложение и вставляю что-то подобное в oncreate действия (после приведенного выше кода)
String i = null;
i.length();
Исключение обрабатывается правильно, а также всплывает диалоговое окно FC. Пока все хорошо, но после просмотра моих журналов я вижу, что метод uncaughtException вызывается несколько раз.
РЕДАКТИРОВАТЬ: Обычно метод вызывается 2-6 раз, а лог из настроек defaultUEH появляется в логах только один раз.
У кого-нибудь еще было такое поведение? Или у кого-нибудь есть намек на то, что я делаю неправильно?
Спасибо, с уважением schw4ndi