Spec-Zone.ru › OpenJDK 25

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

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её дочерних компаний в США и других странах.
Авторское право © 1993, 2025, 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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/lang/classfile/instruction/ExceptionCatch.html

Spec-Zone.ru

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