Спецификация Java 11: 11.2.1. Анализ исключений в выражениях

Выражение создания экземпляра класса может вызвать исключение класса E, если:

  • Выражение является квалифицированным выражением создания экземпляра класса, а квалифицирующее выражение может вызывать E; или же
  • Некоторое выражение списка аргументов может вызывать E; или же
  • E - один из типов исключений для типа вызова выбранного конструктора; или же
  • Выражение создания экземпляра класса включает ClassBody, а некоторый инициализатор экземпляра или инициализатор переменной экземпляра в ClassBody может выдавать E.

Выражение вызова метода может вызвать исключение класса E, если:

  • Выражение вызова метода имеет форму
    Primary . [TypeArguments] Identifier и Primary выражение могут вызывать E; или же
  • Некоторое выражение списка аргументов может вызывать E; или же
  • E - это один из типов исключений для типа вызова выбранного метода.

Лямбда-выражение не может генерировать классы исключений.

Для любого другого вида выражения выражение может вызывать исключение класса E, если одно из его непосредственных подвыражений может вызывать E.

Обратите внимание, что выражение ссылки на метод формы
Primary :: [TypeArguments] Identifier может вызвать класс исключения, если Primary подвыражение может вызвать класс исключения. Напротив, лямбда-выражение ничего не может генерировать и не имеет непосредственных подвыражений, на которых можно было бы выполнить анализ исключений. Это тело лямбда-выражения, содержащее выражения и инструкции, которые могут вызывать классы исключений.


Читайте также:


Комментарии

Популярные сообщения из этого блога

Методы класса Object в Java

Как получить текущий timestamp в Java

Основные опции JVM для повышения производительности и отладки