2012-05-14 3 views

ответ

5

Прямо из документации:

компилятор для языка программирования Java проверки, во время компиляции, , что программа содержит обработчики для проверяемых исключений, анализируя , которые проверяемые исключения могут возникнуть в результате исполнения метод или конструктор. Для каждого проверенного исключения, которое является возможным результатом, предложение throws для метода (§8.4.6) или конструктор (§8.8.5) должно указать класс этого исключения или один из суперклассов класса этого исключение. Эта проверка времени компиляции для присутствия обработчиков исключений предназначена для уменьшения количества исключений , которые неправильно обрабатываются.

Неконтролируемые классы исключений - это класс RuntimeException и его подклассы, а также класс Error и его подклассы. Все остальные классы исключений - это проверенные классы исключений. API Java определяет несколько классов исключений, как проверенных, так и непроверенных. Дополнительные классы , как проверенные, так и непроверенные, могут быть объявлены программистами. См. §11.5 для описания иерархии исключений и некоторых классов исключений, определенных Java API и виртуальной машиной Java.

Так что в основном он смотрит на код, если он встречается с исключением, ищет иерархию наследования исключения, чтобы решить, проверено или не отмечено.

Read

1

Все проверенные исключения имеют базовый класс Exception, в то время как не проверенные исключения распространяются на RuntimeException или Error.

+3

Там также потенциал для других подклассов Throwable, которые не являются ни исключений, RuntimeExceptions, ни ошибок. –

+2

Проверяются все Throwable, кроме Error и RuntimeException. Если вы подклассифицируете Throwable напрямую, он проверяется. –

+0

Исключены исключения, которые удовлетворяют вашим условиям. – EJP