Всем привет, друзья! Хотелось бы спросить: checked исключения, как я понял обязательно должны содержать оператор throws в сигнатуре метода или обрабатываться в конструкции try, catch? Подскажите пожалуйста, заранее спасибо!
Если написать что-то которое относится допустим к checked исключениям: тот же FileNotFoundException, то Idea вас попросит либо обернуть это в try, catch конструкцию либо вам нужно будет добавить в сигнатуру метода оператор throws и класс (FileNotFoundException) это для checked.
А для unchecked вы можете написать:
int a = 5;
int b = 0;
int c = a/b;
System.out.print(c)
//выведет Arithmetic exception, но так как Arithmetic exception это класс unchecked, Idea вас не будет просить обернуть это в конструкцию try, catch либо добавить оператор throws в сигнатуру метода потому что это UNCHECKED исключения
Да, это все написано в спецификации, в главе 11 «Исключения».
Виды исключений определены в §11.1.1
11.1.1. The Kinds of Exceptions
...
The unchecked exception classes are the run-time exception classes and the error classes.
The checked exception classes are all exception classes other than the unchecked exception classes.
11.1.1. Виды исключений
...
Классами непроверяемых исключений являются классы исключений времени выполнения и ошибок.
Классами проверяемых исключений являются все классы исключений, кроме проверяемых.
Проверяемое исключение должно быть либо поймано, либо определено в throws метода или конструктора, в противном случае возникает ошибка компиляции. При этом в throws может быть определено
Это описано в §11.2.3
11.2.3. Exception Checking
It is a compile-time error if a method or constructor body can throw some exception class E when E is a checked exception class and E is not a subclass of some class declared in the throws clause of the method or constructor.
11.2.3. Проверка исключений
Если тело метода или конструктора может генерировать некоторый класс исключений E, где E — класс проверяемого исключения и E не является подклассом некоторого класса, объявленного в конструкции throws метода или конструктора, то генерируется ошибка компиляции.
Какие блоки и в каких случаях могут генерировать те или иные исключения описано в §11.2.1 и §11.2.2. Для лучшего понимания, советую прочитать всю 11-ю главу, она достаточно коротка, содержит примеры и полно описывает работу с исключениями в Java.
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости