ExceptionsAttribute (Java SE 26 & JDK 26)
Description: declaration: module: java.base, package: java.lang.classfile.attribute, interface: ExceptionsAttribute
Keywords: java.lang.classfile.attribute.ExceptionsAttribute interface

# Interface ExceptionsAttribute

All Superinterfaces:
  `Attribute<ExceptionsAttribute>, ClassFileElement, MethodElement`

public sealed interface ExceptionsAttribute extends Attribute<ExceptionsAttribute>, MethodElement
Models the `Exceptions` attribute (JVMS 4.7.5), which records the exceptions declared to be thrown by this method.

This attribute only appears on methods, and does not permit multiple instances in a method. It has a data dependency on the constant pool.

The attribute was introduced in the Java Platform version 1.0.2, major version 45.

API Note:
  Generic exceptions types thrown by a method and potentially annotated use of those types are defined by `SignatureAttribute` and `RuntimeVisibleTypeAnnotationsAttribute` respectively, which requires this attribute to be present.
See Java Virtual Machine Specification:
  4.7.5 The `Exceptions` Attribute
Since:
  24
See Also:
  - `Attributes.exceptions()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `List<ClassEntry>`
  `exceptions()`
  Returns the exceptions declared to be thrown by this method.
  `static ExceptionsAttribute`
  `of(ClassEntry... exceptions)`
  Returns an `Exceptions` attribute.
  `static ExceptionsAttribute`
  `of(List<ClassEntry> exceptions)`
  Returns an `Exceptions` attribute.
  `static ExceptionsAttribute`
  `ofSymbols(ClassDesc... exceptions)`
  Returns an `Exceptions` attribute.
  `static ExceptionsAttribute`
  `ofSymbols(List<ClassDesc> exceptions)`
  Returns an `Exceptions` attribute.

  ### Methods declared in interface Attribute

  `attributeMapper, attributeName`
  Modifier and Type
  Method
  Description
  `AttributeMapper<ExceptionsAttribute>`
  `attributeMapper()`
  Returns the `AttributeMapper` associated with this attribute.
  `Utf8Entry`
  `attributeName()`
  Returns the name of the attribute.

- ## Method Details

  - ### exceptions

    List<ClassEntry> exceptions()
    Returns the exceptions declared to be thrown by this method.
    Returns:
      the exceptions declared to be thrown by this method
    See Also:
      - `Executable.getExceptionTypes()`

  - ### of

    static ExceptionsAttribute of(List<ClassEntry> exceptions)
    Returns an `Exceptions` attribute.
    Parameters:
      `exceptions` - the exceptions that may be thrown from this method
    Returns:
      an `Exceptions` attribute
    Throws:
      `IllegalArgumentException` - if the number of exceptions exceeds the limit of `u2`

  - ### of

    static ExceptionsAttribute of(ClassEntry... exceptions)
    Returns an `Exceptions` attribute.
    Parameters:
      `exceptions` - the exceptions that may be thrown from this method
    Returns:
      an `Exceptions` attribute
    Throws:
      `IllegalArgumentException` - if the number of exceptions exceeds the limit of `u2`

  - ### ofSymbols

    static ExceptionsAttribute ofSymbols(List<ClassDesc> exceptions)
    Returns an `Exceptions` attribute.
    Parameters:
      `exceptions` - the exceptions that may be thrown from this method
    Returns:
      an `Exceptions` attribute
    Throws:
      `IllegalArgumentException` - if the number of exceptions exceeds the limit of `u2`

  - ### ofSymbols

    static ExceptionsAttribute ofSymbols(ClassDesc... exceptions)
    Returns an `Exceptions` attribute.
    Parameters:
      `exceptions` - the exceptions that may be thrown from this method
    Returns:
      an `Exceptions` attribute
    Throws:
      `IllegalArgumentException` - if the number of exceptions exceeds the limit of `u2`