Страница 1 из 1

Как правильно отлавливать Exceptions

Добавлено: 07 дек 2013, 08:59
Elek
Добрый день, есть приложение, которое подключается к http, получает оттуда JSON и парсит его в базу данных.
Все это происходит в AsyncTask'e.
Когда есть интернет и получаем правильный ответ, тогда все нормально работает :).
Теперь нужно понять, как правильно поступать, когда нет интернета или получаю не правильный JSON или вообще его не получаю.
На данный момент - отлавливаю эксепшн в "catch" блоке пишу stack Trace и возвращаю null.
Как правильно оповестить активити, о том, что случилась ошибка ? Пока из того, что надумал - сделать броадкаст и отправлять его активити.

Как вообще правильно поступать в таких ситуациях?

Re: Как правильно отлавливать Exceptions

Добавлено: 07 дек 2013, 12:46
rezak90
нужно возвращать Exception в активити

Re: Как правильно отлавливать Exceptions

Добавлено: 08 дек 2013, 13:32
Elek
В общем работает не так, как я описал.
Есть класс Loader, который занимается загрузкой данных и сохранением в ContentProvider.
Активити делает запрос из ContentProvider'a и заодно просит Loader обновить ContentProvider. В дополнение к этому в самом активити есть ContentObserver, который подгружает данные из Content Provider'a, в Активити если есть какие-то изменения.
В классе Loader'e есть внутренний приватный класс, который расширяет AsyncTask и который занимается загрузкой данных.
AsyncTask не общается напрямую с активити, да и нельзя возвращать Exception в doInBackground().
Получилось немного путанно, да и возможно, что мой дизайн не самый правильный.
Что можно сделать в этом случае ?

Re: Как правильно отлавливать Exceptions

Добавлено: 08 дек 2013, 14:33
rezak90
Elek писал(а):AsyncTask не общается напрямую с активити, да и нельзя возвращать Exception в doInBackground()
можно, но это не правильно, но AsyncTask это класс и никто не мешает объявить переменную класса Exception и потом в onPostExecute её проверить