Spec-Zone.ru › OpenJDK 24

Интерфейс CodeBuilder.CatchBuilder

Включающий интерфейс:
CodeBuilder
public static sealed interface CodeBuilder.CatchBuilder
Построитель для добавления блоков catch.
С момента:
24
См. также:
  • CodeBuilder.trying(java.util.function.Consumer<java.lang.classfile.CodeBuilder.BlockCodeBuilder>, java.util.function.Consumer<java.lang.classfile.CodeBuilder.CatchBuilder>)
  • ExceptionCatch

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

Модификатор и тип Метод Описание
CodeBuilder.CatchBuilder catching(ClassDesc exceptionType, Consumer<CodeBuilder.BlockCodeBuilder> catchHandler)
Добавляет блок catch, который перехватывает исключение заданного типа.
void catchingAll(Consumer<CodeBuilder.BlockCodeBuilder> catchAllHandler)
Добавляет блок "catch", который перехватывает все исключения.
CodeBuilder.CatchBuilder catchingMulti(List<ClassDesc> exceptionTypes, Consumer<CodeBuilder.BlockCodeBuilder> catchHandler)
Добавляет блок catch, который перехватывает исключения заданных типов.

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

catching

CodeBuilder.CatchBuilder catching(ClassDesc exceptionType, Consumer<CodeBuilder.BlockCodeBuilder> catchHandler)
Добавляет блок catch, который перехватывает исключение заданного типа.

Перехваченное исключение будет находиться в верхней части стека операндов при входе в блок catch.

Метка CodeBuilder.BlockCodeBuilder.breakLabel() для блока catch соответствует метке выхода из блока tryHandler в CodeBuilder.trying(java.util.function.Consumer<java.lang.classfile.CodeBuilder.BlockCodeBuilder>, java.util.function.Consumer<java.lang.classfile.CodeBuilder.CatchBuilder>).

Если тип исключения null, то блок catch перехватывает все исключения.

Параметры:
exceptionType - тип исключения для перехвата, может быть null
catchHandler - обработчик, который получает CodeBuilder.BlockCodeBuilder для генерации тела блока catch
Возвращаемое значение:
этот строитель
Исключения:
IllegalArgumentException - если существующий блок catch перехватывает исключение заданного типа или exceptionType представляет примитивный тип
См. также:
  • catchingMulti(java.util.List<java.lang.constant.ClassDesc>, java.util.function.Consumer<java.lang.classfile.CodeBuilder.BlockCodeBuilder>)
  • catchingAll(java.util.function.Consumer<java.lang.classfile.CodeBuilder.BlockCodeBuilder>)

catchingMulti

CodeBuilder.CatchBuilder catchingMulti(List<ClassDesc> exceptionTypes, Consumer<CodeBuilder.BlockCodeBuilder> catchHandler)
Добавляет блок catch, который перехватывает исключения заданных типов.

Перехваченное исключение будет находиться в верхней части стека операндов при входе в блок catch.

Метка CodeBuilder.BlockCodeBuilder.breakLabel() для блока catch соответствует метке выхода из блока tryHandler в CodeBuilder.trying(java.util.function.Consumer<java.lang.classfile.CodeBuilder.BlockCodeBuilder>, java.util.function.Consumer<java.lang.classfile.CodeBuilder.CatchBuilder>).

Если список типов исключений пуст, то блок catch перехватывает все исключения.

Параметры:
exceptionTypes - типы исключений для перехвата
catchHandler - обработчик, который получает CodeBuilder.BlockCodeBuilder для генерации тела блока catch
Возвращаемое значение:
этот строитель
Исключения:
IllegalArgumentException - если существующий блок catch перехватывает одно или несколько исключений заданных типов
См. также:
  • catching(java.lang.constant.ClassDesc, java.util.function.Consumer<java.lang.classfile.CodeBuilder.BlockCodeBuilder>)
  • catchingAll(java.util.function.Consumer<java.lang.classfile.CodeBuilder.BlockCodeBuilder>)

catchingAll

void catchingAll(Consumer<CodeBuilder.BlockCodeBuilder> catchAllHandler)
Добавляет блок "catch", который перехватывает все исключения.

Метка CodeBuilder.BlockCodeBuilder.breakLabel() для блока catch соответствует метке выхода из блока tryHandler в CodeBuilder.trying(java.util.function.Consumer<java.lang.classfile.CodeBuilder.BlockCodeBuilder>, java.util.function.Consumer<java.lang.classfile.CodeBuilder.CatchBuilder>).

Перехваченное исключение будет находиться в верхней части стека операндов при входе в блок catch.

Параметры:
catchAllHandler - обработчик, который получает CodeBuilder.BlockCodeBuilder для генерации тела блока catch
Исключения:
IllegalArgumentException - если существующий блок catch перехватывает все исключения
См. также:
  • catching(java.lang.constant.ClassDesc, java.util.function.Consumer<java.lang.classfile.CodeBuilder.BlockCodeBuilder>)
  • catchingMulti(java.util.List<java.lang.constant.ClassDesc>, java.util.function.Consumer<java.lang.classfile.CodeBuilder.BlockCodeBuilder>)

© 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/CodeBuilder.CatchBuilder.html

Spec-Zone.ru

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