Spec-Zone.ru › OpenJDK 27

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

Обрамляющий интерфейс:
CodeBuilder
public static sealed interface CodeBuilder.CatchBuilder
Построитель для добавления блоков catch.

Порядок блоков catch имеет значение. Когда блок try выбрасывает исключение, выполнение переходит к первому блоку catch, тип исключения которого является тем же классом, что и класс выброшенного исключения, либо его суперклассом (JVMS §2.10).

Начиная с версии:
24
См. также:
  • CodeBuilder.trying(Consumer, Consumer)
  • 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(Consumer, Consumer).

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

Примечание API:
Если исключение указанного типа уже обрабатывается предыдущими блоками catch, этот блок никогда не будет выполнен.
Параметры:
exceptionType — тип перехватываемого исключения; может быть null
catchHandler — обработчик, получающий CodeBuilder.BlockCodeBuilder для создания тела блока catch
Возвращает:
этот построитель
Выбрасывает:
IllegalArgumentException — если exceptionType представляет примитивный тип
См. также:
  • catchingMulti(List, Consumer)
  • catchingAll(Consumer)

catchingMulti

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

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

CodeBuilder.BlockCodeBuilder.breakLabel() блока catch соответствует метке выхода блока tryHandler в CodeBuilder.trying(Consumer, Consumer).

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

Примечание API:
Если все исключения указанных типов уже обрабатываются предыдущими блоками catch, этот блок никогда не будет выполнен.
Параметры:
exceptionTypes — типы перехватываемых исключений
catchHandler — обработчик, получающий CodeBuilder.BlockCodeBuilder для создания тела блока catch
Возвращает:
этот построитель
Выбрасывает:
IllegalArgumentException — если какой-либо тип исключения представляет примитивный тип
См. также:
  • catching(ClassDesc, Consumer)
  • catchingAll(Consumer)

catchingAll

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

CodeBuilder.BlockCodeBuilder.breakLabel() блока catch соответствует метке выхода блока tryHandler в CodeBuilder.trying(Consumer, Consumer).

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

Примечание API:
Поскольку этот блок перехватывает все исключения, все последующие блоки catch никогда не будут выполнены.
Параметры:
catchAllHandler — обработчик, получающий CodeBuilder.BlockCodeBuilder для создания тела блока catch
См. также:
  • catching(ClassDesc, Consumer)
  • catchingMulti(List, Consumer)

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по 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