Spec-Zone.ru › OpenJDK 27

Интерфейс ExceptionCatch

Все суперинтерфейсы:
ClassFileElement, CodeElement, PseudoInstruction
public sealed interface ExceptionCatch extends PseudoInstruction
Псевдоинструкция, моделирующая запись в массиве exception_table атрибута Code. Блоки catch (JVMS §3.12) и finally (JVMS §3.14) в исходном коде Java компилируются в записи таблицы исключений. Порядок записей таблицы исключений имеет значение: при возникновении исключения в методе выполнение переходит к первому подходящему обработчику исключения, если такой обработчик существует (JVMS §2.10). При обходе содержимого CodeModel передаётся как CodeElement.

Запись таблицы исключений является составной:

ExceptionCatch(
    Label handler,
    Label tryStart,
    Label tryEnd,
    Optional<ClassEntry> catchType
)
См. Спецификацию виртуальной машины Java:
4.7.3 Атрибут Code
Начиная с:
24
См. также:
  • CodeBuilder::exceptionCatch
  • CodeModel.exceptionHandlers()

Краткое описание методов

Модификатор и тип Метод Описание
Optional<ClassEntry> catchType()
Возвращает тип перехватываемого исключения или пустое значение, если этот обработчик перехватывает все исключения.
Label handler()
Возвращает обработчик исключения.
static ExceptionCatch of(Label handler, Label tryStart, Label tryEnd)
Возвращает псевдоинструкцию таблицы исключений для перехвата всех исключений.
static ExceptionCatch of(Label handler, Label tryStart, Label tryEnd, Optional<ClassEntry> catchTypeEntry)
Возвращает псевдоинструкцию таблицы исключений.
Label tryEnd()
Возвращает конец диапазона инструкций для защищённых инструкций.
Label tryStart()
Возвращает начало диапазона инструкций для защищённых инструкций.

Подробное описание методов

handler

Label handler()
Возвращает обработчик исключения.
Возвращает:
обработчик исключения

tryStart

Label tryStart()
Возвращает начало диапазона инструкций для защищённых инструкций.
Возвращает:
начало диапазона инструкций для защищённых инструкций

tryEnd

Label tryEnd()
Возвращает конец диапазона инструкций для защищённых инструкций.
Возвращает:
конец диапазона инструкций для защищённых инструкций

catchType

Optional<ClassEntry> catchType()
Возвращает тип перехватываемого исключения или пустое значение, если этот обработчик перехватывает все исключения.
Возвращает:
тип перехватываемого исключения или пустое значение, если этот обработчик перехватывает все исключения

of

static ExceptionCatch of(Label handler, Label tryStart, Label tryEnd, Optional<ClassEntry> catchTypeEntry)
Возвращает псевдоинструкцию таблицы исключений.
Параметры:
handler — обработчик исключения
tryStart — начало диапазона инструкций для защищённых инструкций
tryEnd — конец диапазона инструкций для защищённых инструкций
catchTypeEntry — тип перехватываемого исключения или пустое значение, если этот обработчик является безусловным
Возвращает:
псевдоинструкцию таблицы исключений

of

static ExceptionCatch of(Label handler, Label tryStart, Label tryEnd)
Возвращает псевдоинструкцию таблицы исключений для перехвата всех исключений.
Параметры:
handler — обработчик исключения
tryStart — начало диапазона инструкций для защищённых инструкций
tryEnd — конец диапазона инструкций для защищённых инструкций
Возвращает:
псевдоинструкцию таблицы исключений для перехвата всех исключений

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и работающие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторские права © 1993, 2026, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API