Как словить Exeption и вызывается ли метод onPause в момент его выброса?

Рейтинг: -1Ответов: 1Опубликовано: 28.02.2015

Подскажите, пожалуйста, как словить Exeption? И вызывается ли метод onPause в момент выброса Exeption?

Мне надо в БД инфу записать, я делаю это в onPause каждого активити, чтобы таймером не грузить лишний раз. Но а что если случайно в программе произошел сбой какой-нибудь, можно ли его словить и добавить обработку моего БД, там метод один нужно добавить просто...

Ответы

▲ 1Принят

Нет, при выбросе исключения, onPause() активности не вызывается.

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

Лучше свести к минимуму вероятность появления исключений, обернуть все опасные места в try-catch-finally. Ну и в коммите данных по таймеру, а не в onPause(), обычно нет ничего страшного.