Для правильной обработки исключений ввода-вывода в Android-разработке можно использовать следующие подходы:
- Использование блоков try и catch. 2 Вызов метода, который может вызвать исключение, помещают в блок try, а блок catch предназначен для обработки исключения. 2
- Установка собственного класса-обработчика непойманных исключений. 4 Для этого используют статический метод класса Thread — setDefaultUncaughtExceptionHandler. 4 Класс-обработчик должен имплементировать интерфейс Thread.UncaughtExceptionHandler. 4
- Использование фреймворков логирования. 3 Рекомендуется включать в логи контекст и подробную информацию об ошибке. 3 При этом следует избегать раскрытия конфиденциальной системной информации в сообщениях об ошибках. 3
- Использование библиотек для сбора данных об ошибках. 4 Например, Flurry содержит свой обработчик ошибок, ACRA собирает данные об ошибках и публикует их на GoogleDocs, а Android-remote-stacktrace отправляет данные на пользовательский скрипт-приёмник. 4
В большинстве случаев у классов ввода-вывода используется исключение IOException. 1 Исключение FileNotFoundException передаётся, когда файл не может быть открыт. 1 Так как оно является подклассом IOException, то можно обрабатывать оба исключения в одном блоке catch, если нет необходимости делать это по отдельности. 1