27.07
Понимание исключений в Java: Checked vs Unchecked
Исключения в Java помогают нам обрабатывать ошибки и непредвиденные ситуации. В Java есть два основных типа исключений: Checked и Unchecked. Понимание их различий поможет вам лучше управлять ошибками в вашем коде.
Checked Exception
Checked исключения — это те, которые компилятор требует от вас обязательно обработать. Обычно это исключения, связанные с внешними ресурсами, например, с файлами или сетевыми соединениями.
Примеры Checked исключений:
IOException — проблемы при работе с файлами SQLException — ошибки при взаимодействии с базами данных Когда ваш код может вызвать Checked исключение, вы должны обработать его в блоке try-catch или объявить его в сигнатуре метода с помощью ключевого слова throws.
Unchecked Exception Unchecked исключения не требуют обязательной обработки. Это ошибки, которые обычно возникают из-за проблем в логике программы, таких как деление на ноль или обращение к несуществующему элементу массива. Эти исключения наследуются от класса RuntimeException.
Примеры Unchecked исключений:
NullPointerException — использование ссылки, которая равна null ArrayIndexOutOfBoundsException — обращение к элементу массива за пределами его границ
На изображении пример, который иллюстрирует как работать с Checked и Unchecked исключениями:
-
Checked исключение: В блоке try мы пытаемся создать объект FileReader для чтения файла. Если файл не существует или возникла проблема при его открытии, выбрасывается IOException. Мы обрабатываем это исключение в блоке catch и выводим сообщение об ошибке.
-
Unchecked исключение: Мы пытаемся получить элемент массива по индексу 5, хотя массив содержит только три элемента. Это приводит к ArrayIndexOutOfBoundsException, которое обрабатывается в блоке catch, где мы выводим соответствующее сообщение. Затем мы делим число 10 на ноль, что вызывает ArithmeticException, также обрабатываемое в блоке catch.
Checked исключения требуют обязательной обработки и обычно связаны с внешними ресурсами. Unchecked исключения возникают из-за ошибок в логике кода и могут быть предотвращены тщательным тестированием и корректным программированием.
еще контент в этом сообществе
еще контент в этом соообществе
27.07
войдите, чтобы увидеть
и подписаться на интересных профи