- All Superinterfaces:
ClassFileElement,CodeElement,PseudoInstruction
A pseudo-instruction modeling an entry in the
exception_table array
of a Code attribute. Catch (JVMS ) and
finally (JVMS ) blocks in Java source code compile to exception
table entries. The order of exception table entries is significant: when an
exception is thrown in a method, execution branches to the first matching
exception handler if such a handler exists (JVMS ). Delivered as
a CodeElement when traversing the contents of a CodeModel.
An exception table entry is composite:
ExceptionCatch(
Label handler,
Label tryStart,
Label tryEnd,
Optional<ClassEntry> catchType
)
- Since:
- 24
- See Also:
-
Method Summary
Modifier and TypeMethodDescriptionReturns the type of the exception to catch, or empty if this handler catches everything.handler()Returns the handler for the exception.static ExceptionCatchReturns an exception table pseudo-instruction to catch everything.static ExceptionCatchReturns an exception table pseudo-instruction.tryEnd()Returns the end of the instruction range for the guarded instructions.tryStart()Returns the beginning of the instruction range for the guarded instructions.
-
Method Details
-
handler
Label handler()Returns the handler for the exception.- Returns:
- the handler for the exception
-
tryStart
Label tryStart()Returns the beginning of the instruction range for the guarded instructions.- Returns:
- the beginning of the instruction range for the guarded instructions
-
tryEnd
Label tryEnd()Returns the end of the instruction range for the guarded instructions.- Returns:
- the end of the instruction range for the guarded instructions
-
catchType
Optional<ClassEntry> catchType()Returns the type of the exception to catch, or empty if this handler catches everything.- Returns:
- the type of the exception to catch, or empty if this handler catches everything
-
of
static ExceptionCatch of(Label handler, Label tryStart, Label tryEnd, Optional<ClassEntry> catchTypeEntry) Returns an exception table pseudo-instruction.- Parameters:
handler- the handler for the exceptiontryStart- the beginning of the instruction range for the guarded instructionstryEnd- the end of the instruction range for the guarded instructionscatchTypeEntry- the type of exception to catch, or empty if this handler is unconditional- Returns:
- an exception table pseudo-instruction
-
of
Returns an exception table pseudo-instruction to catch everything.- Parameters:
handler- the handler for the exceptiontryStart- the beginning of the instruction range for the guarded instructionstryEnd- the end of the instruction range for the guarded instructions- Returns:
- an exception table pseudo-instruction to catch everything
-