W3cubDocs

/OpenJDK 25

Interface ExceptionCatch

All Superinterfaces:
ClassFileElement, CodeElement, PseudoInstruction
public sealed interface ExceptionCatch extends PseudoInstruction
A pseudo-instruction modeling an entry in the exception_table array of a Code attribute. Catch (JVMS 3.12) and finally (JVMS 3.14) blocks in Java source code compile to exception table entries. 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
)
See Java Virtual Machine Specification:
4.7.3 The Code Attribute
Since:
24
See Also:

Method Summary

Modifier and Type Method Description
Optional<ClassEntry> catchType()
Returns the type of the exception to catch, or empty if this handler catches everything.
Label handler()
Returns the handler for the exception.
static ExceptionCatch of(Label handler, Label tryStart, Label tryEnd)
Returns an exception table pseudo-instruction to catch everything.
static ExceptionCatch of(Label handler, Label tryStart, Label tryEnd, Optional<ClassEntry> catchTypeEntry)
Returns an exception table pseudo-instruction.
Label tryEnd()
Returns the end of the instruction range for the guarded instructions.
Label 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 exception
tryStart - the beginning of the instruction range for the guarded instructions
tryEnd - the end of the instruction range for the guarded instructions
catchTypeEntry - the type of exception to catch, or empty if this handler is unconditional
Returns:
an exception table pseudo-instruction

of

static ExceptionCatch of(Label handler, Label tryStart, Label tryEnd)
Returns an exception table pseudo-instruction to catch everything.
Parameters:
handler - the handler for the exception
tryStart - the beginning of the instruction range for the guarded instructions
tryEnd - the end of the instruction range for the guarded instructions
Returns:
an exception table pseudo-instruction to catch everything

© 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://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/lang/classfile/instruction/ExceptionCatch.html