Подготовка к собеседованию на Java Developer
В Java все исключения делятся на два типа:
checked (контролируемые/проверяемые исключения) должны обрабатываться блоком catch
или описываться в заголовке метода (например, throws IOException
). Наличие такого обработчика/модификатора в заголовке метода проверяется на этапе компиляции;
unchecked (неконтролируемые/непроверяемые исключения), к которым относятся ошибки Error
(например, OutOfMemoryError
), обрабатывать которые не рекомендуется и исключения времени выполнения, представленные классом RuntimeException
и его наследниками (например, NullPointerException
), которые могут не обрабатываться блоком catch
и не быть описанными в заголовке метода.
Исключения — это механизм обработки ошибок, возникающих во время выполнения программы. В Java они делятся на две основные категории: проверяемые (checked) и непроверяемые (unchecked) исключения.
Проверяемые исключения требуют явной обработки. Если они могут возникнуть в методе, их необходимо либо обработать с помощью блока try-catch
, либо указать в сигнатуре метода через ключевое слово throws
. Это ошибки, которые можно предвидеть и обработать, такие как ошибки ввода-вывода, когда файл не найден.
try {
FileInputStream file = new FileInputStream("non_existent_file.txt");
} catch (FileNotFoundException e) {
e.printStackTrace();
}
В этом примере FileNotFoundException
— проверяемое исключение, и оно должно быть обработано или выброшено.
### Непроверяемые исключения (Unchecked Exceptions)
Непроверяемые исключения не требуют обязательной обработки. Это ошибки, которые чаще всего возникают из-за ошибок в коде, таких как деление на ноль или доступ к элементам массива вне его границ. Эти исключения являются потомками класса RuntimeException
.
#### Пример:
int result = 10 / 0; // Приводит к ArithmeticException
Здесь ArithmeticException
— непроверяемое исключение, которое возникнет при делении на ноль, и его обработка не обязательна.
Разделение исключений на проверяемые и непроверяемые помогает программисту отличать ошибки, которые можно предотвратить (checked), от ошибок, которые возникают в результате логических ошибок в коде (unchecked). Это способствует более надежному и безопасному написанию кода.
Ваш ответ на вопрос
Помогите другим участникам подготовиться к собеседованию и пришлите ответ на вопрос, пожалуйста укажите источник вашего ответа
Менторы
Специалисты своей области, которые смогут помочь вам
Senior Java Developer
Senior Java Developer
Senior Java-разработчик
Lead Java/Kotlin Developer Sber
Software Engineer at Avito
Java Developer
Lead Backend Developer
Middle+ Java Developer в Aston
Middle Java Developer
Senior Java Developer
Каналы
Полезные Telegram каналы и чаты