Можно ли продолжить выполнение программы после возникновения исключения (exception) в Java?

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

Ответ

Да, можно, если исключение было перехвачено (caught) и обработано.

Ключевой механизм — блок try-catch. Код, следующий за блоком catch, выполнится после обработки исключения.

Пример:

try {
    System.out.println("Шаг 1: Выполняем операцию.");
    int result = 10 / 0; // Здесь возникает ArithmeticException
    System.out.println("Этот код уже не выполнится.");
} catch (ArithmeticException e) {
    System.out.println("Шаг 2: Перехватили исключение: " + e.getMessage());
    // Можно выполнить восстановительные действия
}

System.out.println("Шаг 3: Программа успешно продолжила работу после блока try-catch.");

Вывод:

Шаг 1: Выполняем операцию.
Шаг 2: Перехватили исключение: / by zero
Шаг 3: Программа успешно продолжила работу после блока try-catch.

Важные моменты:

  • Если исключение не перехвачено соответствующим блоком catch, выполнение метода прерывается, и исключение пробрасывается вызывающему коду, что может привести к завершению потока или программы.
  • Блок finally выполняется всегда, независимо от того, было выброшено исключение или нет. Он используется для освобождения ресурсов (закрытия файлов, соединений).