Spec-Zone.ru › OpenJDK 24

Интерфейс ExceptionCatch

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

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

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 - конец диапазона инструкций для защищённых инструкций
Возвращает:
псевдоинструкцию таблицы исключений для перехвата всего

© 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.
https://download.java.net/java/early_access/jdk24/docs/api/java.base/java/lang/classfile/instruction/ExceptionCatch.html

Spec-Zone.ru

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