Ответ
Обработать исключение — значит перехватить объект исключения, выброшенный в блоке try, с помощью соответствующего блока catch, и предпринять действия для:
- Восстановления потока выполнения программы.
- Корректного завершения операции с освобождением ресурсов.
- Логирования ошибки для последующего анализа.
- Предоставления пользователю понятного сообщения.
Базовый шаблон обработки:
try {
// Код, который может выбросить исключение
FileInputStream fis = new FileInputStream("file.txt");
// Чтение файла...
} catch (FileNotFoundException e) {
// 1. Восстановление/Замена
System.err.println("Файл не найден. Используем конфигурацию по умолчанию.");
// 2. Логирование
logger.error("Отсутствует файл конфигурации", e);
// 3. Возврат в нормальное состояние
loadDefaultConfig();
} catch (IOException e) {
// Обработка других ошибок ввода-вывода
System.err.println("Ошибка чтения файла: " + e.getMessage());
} finally {
// Код в finally выполняется ВСЕГДА, даже если было исключение или return
// Часто используется для освобождения ресурсов (закрытие потоков, соединений)
if (fis != null) {
try { fis.close(); } catch (IOException ignored) {}
}
}
Лучшие практики:
- Ловите конкретные исключения, а не общий
Exception(где это возможно). - Не игнорируйте исключения пустым блоком
catch. - Используйте multi-catch (Java 7+) для группировки однотипных исключений:
catch (IOException | SQLException e). - Помните о try-with-resources (Java 7+) для автоматического закрытия ресурсов, реализующих
AutoCloseable.