База знаний Бинариум

Исключения в Java: try-catch, finally и свои исключения

Исключения в Java

Пользователь ввёл буквы вместо числа, файл не нашёлся, сервер не ответил. Хорошая программа не падает в таких ситуациях, а аккуратно их обрабатывает. В Java для этого есть исключения.

Б

Редакция Бинариума

Пишем о профессиях в дизайне, BIM и IT · 7 минут чтения

Что такое исключение

Исключение — объект, который сообщает, что во время выполнения программы произошло что-то непредвиденное. Если его не обработать, программа завершится с ошибкой.

try-catch-finally

try {
  int age = Integer.parseInt(input);
} catch (NumberFormatException e) {
  System.out.println("Введите число");
} finally {
  System.out.println("Проверка завершена");
}
  • try — код, в котором может возникнуть ошибка.
  • catch — что делать, если она возникла.
  • finally — выполняется в любом случае, например чтобы закрыть ресурсы.

Для работы с файлами и соединениями удобнее try-with-resources: ресурс закроется автоматически.

try (BufferedReader r = Files.newBufferedReader(path)) {
  System.out.println(r.readLine());
}

Курс Бинариума

Java-разработчик с нуля — исключения, файлы и тесты

Подробнее

Checked и unchecked

ТипОсобенностьПримеры
CheckedКомпилятор требует обработать или объявить в throwsIOException
UncheckedОбычно следствие ошибки в коде, обработка не обязательнаNullPointerException, IllegalArgumentException
ErrorСерьёзные проблемы среды, обычно не обрабатываютсяOutOfMemoryError

Своё исключение

class NotEnoughMoneyException extends RuntimeException {
  NotEnoughMoneyException(String msg) { super(msg); }
}

if (balance < amount) {
  throw new NotEnoughMoneyException("Недостаточно средств");
}

Свои исключения делают код понятнее: по названию сразу ясно, что пошло не так.

Ошибки новичков

  • Пустой catch — ошибка «проглатывается», и найти её потом очень сложно.
  • Перехват Exception везде — вы ловите и те ошибки, которые не ожидали.
  • Исключения вместо условий — проверять, пустой ли список, лучше через if.

Главное

  • Исключения сообщают о непредвиденных ситуациях.
  • try-catch обрабатывает ошибку, finally выполняется всегда.
  • Checked нужно обрабатывать обязательно, unchecked — сигнал об ошибке в коде.
  • Никогда не оставляйте catch пустым.

Частые вопросы

Что такое NullPointerException?

Попытка вызвать метод или обратиться к полю у переменной, которая равна null. Самая частая ошибка новичков.

Когда использовать throws?

Когда метод не может сам обработать checked-исключение и передаёт ответственность вызывающему коду.

Курс Бинариума

Java-разработчик с нуля

Пишите программы, которые не падают от первой ошибки пользователя.

  • 11 недель обучения
  • 10+ практических работ
  • Проект на GitHub
10.11.2026
Читайте также