Sobes.tech
Назад к вопросам
Junior — Middle
110

Как отличить исключения, которые необходимо явно обрабатывать, от тех, что можно не указывать в коде?

Компании, где спрашивали
Ви6 Сервисес

Ответ от нейросети

sobes.tech AI

В Java исключения делятся на проверяемые (checked) и непроверяемые (unchecked). Проверяемые исключения наследуются от класса Exception, но не от RuntimeException, и требуют обязательной обработки — либо через блок try-catch, либо через объявление в сигнатуре метода с помощью ключевого слова throws. Непроверяемые исключения наследуются от RuntimeException и могут не указываться явно — их обработка необязательна.

Пример:

public void readFile() throws IOException { // IOException — проверяемое исключение
    // код чтения файла
}

public void parseInt(String s) {
    int num = Integer.parseInt(s); // NumberFormatException — непроверяемое исключение
}

Таким образом, если компилятор требует обработать исключение или объявить его в методе, значит это проверяемое исключение, и его нужно явно обрабатывать.