Interface CodeBuilder.CatchBuilder
- Enclosing interface:
CodeBuilder
public static sealed interface CodeBuilder.CatchBuilder
A builder to add catch blocks.
- Since:
- 24
- See Also:
-
Method Summary
Modifier and TypeMethodDescriptioncatching
(ClassDesc exceptionType, Consumer<CodeBuilder.BlockCodeBuilder> catchHandler) Adds a catch block that catches an exception of the given type.void
catchingAll
(Consumer<CodeBuilder.BlockCodeBuilder> catchAllHandler) Adds a "catch" block that catches all exceptions.catchingMulti
(List<ClassDesc> exceptionTypes, Consumer<CodeBuilder.BlockCodeBuilder> catchHandler) Adds a catch block that catches exceptions of the given types.
-
Method Details
-
catching
CodeBuilder.CatchBuilder catching(ClassDesc exceptionType, Consumer<CodeBuilder.BlockCodeBuilder> catchHandler) Adds a catch block that catches an exception of the given type.The caught exception will be on top of the operand stack when the catch block is entered.
If the type of exception is
null
then the catch block catches all exceptions.- Parameters:
exceptionType
- the type of exception to catch.catchHandler
- handler that receives a CodeBuilder to generate the body of the catch block.- Returns:
- this builder
- Throws:
IllegalArgumentException
- if an existing catch block catches an exception of the given type orexceptionType
represents a primitive type- See Also:
-
catchingMulti
CodeBuilder.CatchBuilder catchingMulti(List<ClassDesc> exceptionTypes, Consumer<CodeBuilder.BlockCodeBuilder> catchHandler) Adds a catch block that catches exceptions of the given types.The caught exception will be on top of the operand stack when the catch block is entered.
If the type of exception is
null
then the catch block catches all exceptions.- Parameters:
exceptionTypes
- the types of exception to catch.catchHandler
- handler that receives a CodeBuilder to generate the body of the catch block.- Returns:
- this builder
- Throws:
IllegalArgumentException
- if an existing catch block catches one or more exceptions of the given types.- See Also:
-
catchingAll
Adds a "catch" block that catches all exceptions.The caught exception will be on top of the operand stack when the catch block is entered.
- Parameters:
catchAllHandler
- handler that receives a CodeBuilder to generate the body of the catch block- Throws:
IllegalArgumentException
- if an existing catch block catches all exceptions.- See Also:
-