Спросят с вероятностью 75%
Исключения (exceptions) важная часть обработки ошибок. Есть две основные категории: проверяемые (checked) и непроверяемые (unchecked).
Проверяемые исключения (Checked Exceptions):
✅ Должны быть явно обработаны в коде с помощью блока
try-catch или должны быть указаны в сигнатуре метода с помощью ключевого слова throws. ✅ Они представляют ошибки, которые могут возникнуть во время выполнения программы и которые во многих случаях программист может предвидеть и обработать. Например, ошибка чтения файла, когда файл не существует.
✅ Примеры классов проверяемых исключений включают
IOException, FileNotFoundException, ClassNotFoundException и другие.Пример:
try {
FileInputStream file = new FileInputStream("non_existent_file.txt");
} catch (FileNotFoundException e) {
e.printStackTrace();
}В этом примере
FileNotFoundException является проверяемым исключением, и его необходимо обрабатывать в блоке try-catch.Непроверяемые исключения (Unchecked Exceptions):
✅ Не требуют обязательной обработки в коде. Они обычно возникают из-за ошибок программирования, таких как деление на ноль или доступ к элементу за пределами массива.
✅ К ним относятся ошибки времени выполнения (RuntimeException) и ошибки (Error).
✅ Примеры включают
NullPointerException, IndexOutOfBoundsException, ArithmeticException и другие.Пример:
int result = 10 / 0; // Приводит к ArithmeticException
Здесь
ArithmeticException является непроверяемым исключением, вызванным делением на ноль.Почему разделение на checked и unchecked?
Разделение позволяет управлять потенциальными ошибками, которые могут быть исправлены, и отличать их от ошибок времени выполнения, которые чаще всего являются результатом ошибок в коде. Это способствует написанию более надежного и устойчивого к ошибкам кода.
➡ Примеры ответов
➡ Список всех вопросов на Java Developer
🧩 Идущий | 🔐 Собесы | 🔐 Тестовые