Интерфейс CodeBuilder.CatchBuilder
- Обрамляющий интерфейс:
CodeBuilder
public static sealed interface CodeBuilder.CatchBuilder
Порядок блоков catch имеет значение. Когда блок try выбрасывает исключение, выполнение переходит к первому блоку catch, тип исключения которого является тем же классом, что и класс выброшенного исключения, либо его суперклассом (JVMS §2.10).
- Начиная с версии:
- 24
- См. также:
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
CodeBuilder.CatchBuilder |
catching |
Добавляет блок catch для перехвата исключения указанного типа. |
void |
catchingAll |
Добавляет блок «catch» для перехвата всех исключений. |
CodeBuilder.CatchBuilder |
catchingMulti |
Добавляет блок catch для перехвата исключений указанных типов. |
Подробное описание методов
catching
CodeBuilder.CatchBuilder catching(ClassDesc exceptionType, Consumer<CodeBuilder.BlockCodeBuilder> catchHandler)
При входе в блок catch перехваченное исключение будет находиться на вершине стека операндов.
CodeBuilder.BlockCodeBuilder.breakLabel() блока catch соответствует метке выхода блока tryHandler в CodeBuilder.trying(Consumer, Consumer).
Если тип исключения — null, блок catch перехватывает все исключения.
- Примечание API:
- Если исключение указанного типа уже обрабатывается предыдущими блоками catch, этот блок никогда не будет выполнен.
- Параметры:
-
exceptionType— тип перехватываемого исключения; может бытьnull -
catchHandler— обработчик, получающийCodeBuilder.BlockCodeBuilderдля создания тела блока catch - Возвращает:
- этот построитель
- Выбрасывает:
-
IllegalArgumentException— еслиexceptionTypeпредставляет примитивный тип - См. также:
catchingMulti
CodeBuilder.CatchBuilder catchingMulti(List<ClassDesc> exceptionTypes, Consumer<CodeBuilder.BlockCodeBuilder> catchHandler)
При входе в блок catch перехваченное исключение будет находиться на вершине стека операндов.
CodeBuilder.BlockCodeBuilder.breakLabel() блока catch соответствует метке выхода блока tryHandler в CodeBuilder.trying(Consumer, Consumer).
Если список типов исключений пуст, блок catch перехватывает все исключения.
- Примечание API:
- Если все исключения указанных типов уже обрабатываются предыдущими блоками catch, этот блок никогда не будет выполнен.
- Параметры:
-
exceptionTypes— типы перехватываемых исключений -
catchHandler— обработчик, получающийCodeBuilder.BlockCodeBuilderдля создания тела блока catch - Возвращает:
- этот построитель
- Выбрасывает:
-
IllegalArgumentException— если какой-либо тип исключения представляет примитивный тип - См. также:
catchingAll
void catchingAll(Consumer<CodeBuilder.BlockCodeBuilder> catchAllHandler)
CodeBuilder.BlockCodeBuilder.breakLabel() блока catch соответствует метке выхода блока tryHandler в CodeBuilder.trying(Consumer, Consumer).
При входе в блок catch перехваченное исключение будет находиться на вершине стека операндов.
- Примечание API:
- Поскольку этот блок перехватывает все исключения, все последующие блоки catch никогда не будут выполнены.
- Параметры:
-
catchAllHandler— обработчик, получающийCodeBuilder.BlockCodeBuilderдля создания тела блока catch - См. также:
© 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.