В Java исключения делятся на два основных типа: checked и unchecked. Разница между ними ключевая и касается как обработки, так и структуры кода.
✅ Checked Exceptions (Проверяемые исключения)
Примеры:
IOException, SQLException, FileNotFoundExceptionОтличия:
1. Проверяются компилятором — вы обязаны либо обработать их с помощью
try-catch, либо явно пробросить (throws) в сигнатуре метода.2. Производные от
Exception, но не от RuntimeException.3. Используются для ситуаций, которые можно разумно ожидать и обработать (например, отсутствие файла, проблемы с сетью).
Пример:
public void readFile(String path) throws IOException {
FileReader reader = new FileReader(path); // может выбросить IOException
}
❌ Unchecked Exceptions (Непроверяемые исключения)
Примеры:
NullPointerException, ArrayIndexOutOfBoundsException, IllegalArgumentExceptionОтличия:
1. Не проверяются компилятором — вы не обязаны их обрабатывать или декларировать.
2. Производные от
RuntimeException.3. Возникают в результате ошибок в логике программы или непредвиденных ситуаций.
Пример:
public void printLength(String str) {
System.out.println(str.length()); // может выбросить NullPointerException
}
Если кратко:
Checked — ошибки среды, требующие явной обработки.
Unchecked — ошибки в логике, ответственность программиста.
👉@BookJava
