Sobes.tech
Senior
41

Yoxlanılan (checked) və yoxlanılmayan (unchecked) istisnalar arasındakı fərq nədir?

Şirkətlər soruşuldu
IT OneIT One

AI-dan cavab

sobes.tech Süni İntellekt

В Java исключения делятся на проверяемые (checked) и непроверяемые (unchecked) по способу обработки компилятором.

  • Проверяемые исключения (checked exceptions) — это исключения, которые наследуются от класса Exception, но не от RuntimeException. Компилятор требует, чтобы такие исключения либо обрабатывались в блоке try-catch, либо объявлялись в сигнатуре метода через throws. Это заставляет программиста явно учитывать возможные ошибки, например, IOException, SQLException.

  • Непроверяемые исключения (unchecked exceptions) — это исключения, наследуемые от RuntimeException. Компилятор не требует их обязательной обработки или объявления. Обычно они сигнализируют о программных ошибках, таких как NullPointerException, IllegalArgumentException.

Пример:

public void readFile(String path) throws IOException { // checked
    // чтение файла, может выбросить IOException
}

public void setAge(int age) {
    if (age < 0) {
        throw new IllegalArgumentException("Возраст не может быть отрицательным"); // unchecked
    }
}

Таким образом, checked исключения требуют явного контроля, а unchecked — сигнализируют о логических ошибках, которые обычно не обрабатываются явно.