Sobes.tech
Back to questions
Junior — Middle
90

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

Answer from AI

sobes.tech AI

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

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

  • Непроверяемые исключения — наследуются от RuntimeException. Компилятор не требует их обязательной обработки. Пример: NullPointerException, IllegalArgumentException. Обычно они возникают из-за ошибок программирования и не должны обрабатываться явно.

Пример:

try {
    FileInputStream fis = new FileInputStream("file.txt"); // IOException - проверяемое
} catch (IOException e) {
    e.printStackTrace();
}

int a = 5 / 0; // ArithmeticException - непроверяемое

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