Всем привет, друзья! Хотелось бы спросить: 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.
Виртуальный выделенный сервер (VDS) становится отличным выбором
Хотелось бы узнать побольше про полиморфизм простыми словами и про его реализации потому что как я понял все везде спорят что нет полиморфизма,...
Всем приветНикак не могу понять как сделать перемещение персонажа из одной точки в другую
Переменные, определяемые в объемлющей области действия лямбда-выражения, доступны в этом выраженииНапример, в лямбда-выражении можно...