В чём отличие Checked и Unchecked исключений в Java? Как с ними работать?
Ответ от нейросети
sobes.tech AI
В Java исключения делятся на Checked (проверяемые) и Unchecked (непроверяемые):
-
Checked исключения — это исключения, которые проверяются компилятором во время компиляции. Методы, которые могут их выбросить, должны объявлять это через
throws, и вызывающий код обязан либо обработать эти исключения (try-catch), либо пробросить дальше. Пример:IOException,SQLException. -
Unchecked исключения — это наследники
RuntimeExceptionиError. Компилятор не требует их обработки или объявления. Обычно они связаны с программными ошибками, например,NullPointerException,IllegalArgumentException.
Как работать:
- Для Checked исключений нужно явно обрабатывать или объявлять их, что заставляет разработчика задуматься о возможных ошибках и их обработке.
- Unchecked исключения обычно сигнализируют о логических ошибках, которые лучше исправлять, а не ловить.
Пример:
public void readFile(String path) throws IOException {
FileReader fr = new FileReader(path); // IOException — checked
}
public void process(int[] arr) {
int x = arr[10]; // может вызвать ArrayIndexOutOfBoundsException — unchecked
}
Таким образом, Checked исключения требуют явного контроля, а Unchecked — сигнализируют о критических ошибках, которые лучше предотвращать.