Что значит обработать исключение в Java?

«Что значит обработать исключение в Java?» — вопрос из категории Java Core, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Обработать исключение — значит перехватить объект исключения, выброшенный в блоке try, с помощью соответствующего блока catch, и предпринять действия для:

  1. Восстановления потока выполнения программы.
  2. Корректного завершения операции с освобождением ресурсов.
  3. Логирования ошибки для последующего анализа.
  4. Предоставления пользователю понятного сообщения.

Базовый шаблон обработки:

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.