Интерфейс 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
- См. также:
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
Optional |
catchType() |
Возвращает тип перехватываемого исключения или пустое значение, если этот обработчик перехватывает все исключения. |
Label |
handler() |
Возвращает обработчик исключения. |
static ExceptionCatch |
of |
Возвращает псевдоинструкцию таблицы исключений для перехвата всех исключений. |
static ExceptionCatch |
of |
Возвращает псевдоинструкцию таблицы исключений. |
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.