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

Можете объяснить различие между проверяемыми и непроверяемыми исключениями в Java?

Компании, где спрашивали
СБЕРСБЕР

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

sobes.tech AI

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

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

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

Пример:

public void readFile(String path) throws IOException {
    // IOException — проверяемое исключение
    FileReader file = new FileReader(path);
}

public void divide(int a, int b) {
    int result = a / b; // может вызвать ArithmeticException — непроверяемое
}

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