#Exception #BestPractices
Рекомендуемая стратегия для обработки ошибок:
1️⃣
Избегайте возникновения ошибки, например проверяйте данные перед передачей в метод или проверяйте текущие состояние перед получением данных (например получение
Activity
/
Context
в
Fragment
)
2️⃣
Если вы знаете как обработать возникшую проблему - делайте это: отправьте запрос повторно, вызывайте другой метод и пр.
3️⃣
Пробрасывайте исключение дальше, добавляя больше информации о его причине. Более высокий слой вполне может быть способен обработать ошибку
4️⃣
Crash приложения. Возможно кто-то считает что это плохо, но он позволяет мгновенно отловить ошибку на стадии тестирования, либо легко отследить ее в проде. Если ошибка просто игнорируются и приложение не падает, то понять причину последующей некорректной работы может быть намного труднее чем увидеть stack trace и разобраться в нем.
Не забудьте настроить
Firebase Crashlytics или другой сервис по отслеживанию крэшей!
Уведомляйте пользователя об ошибках, которые не дают приложению нормально работать. Пользователь должен понимать, что есть причина некорректной работы.
Также будет хорошо показать путь которым эту ошибку можно исправить, например предоставив соответствующее разрешение или доступ.