Class ExceptionTable

java.lang.Object
org.apache.bcel.classfile.Attribute
org.apache.bcel.classfile.ExceptionTable
All Implemented Interfaces:
Cloneable, Node

public final class ExceptionTable extends Attribute
This class represents the table of exceptions that are thrown by a method. This attribute may be used once per method. The name of this class is ExceptionTable for historical reasons; The Java Virtual Machine Specification, Second Edition defines this attribute using the name Exceptions (which is inconsistent with the other classes).
 Exceptions_attribute {
   u2 attribute_name_index;
   u4 attribute_length;
   u2 number_of_exceptions;
   u2 exception_index_table[number_of_exceptions];
 }
 
See Also:
  • Constructor Details

    • ExceptionTable

      Initialize from another object. Note that both objects use the same references (shallow copy). Use copy() for a physical copy.
      Parameters:
      c - Source to copy.
    • ExceptionTable

      public ExceptionTable(int nameIndex, int length, int[] exceptionIndexTable, ConstantPool constantPool)
      Parameters:
      nameIndex - Index in constant pool
      length - Content length in bytes
      exceptionIndexTable - Table of indices in constant pool
      constantPool - Array of constants
  • Method Details

    • accept

      public void accept(Visitor v)
      Called by objects that are traversing the nodes of the tree implicitly defined by the contents of a Java class. I.e., the hierarchy of methods, fields, attributes, etc. spawns a tree of objects.
      Specified by:
      accept in interface Node
      Specified by:
      accept in class Attribute
      Parameters:
      v - Visitor object
    • copy

      public Attribute copy(ConstantPool constantPool)
      Specified by:
      copy in class Attribute
      Parameters:
      constantPool - constant pool to save.
      Returns:
      deep copy of this attribute
    • dump

      public void dump(DataOutputStream file) throws IOException
      Dump exceptions attribute to file stream in binary format.
      Overrides:
      dump in class Attribute
      Parameters:
      file - Output file stream
      Throws:
      IOException - if an I/O error occurs.
    • getExceptionIndexTable

      public int[] getExceptionIndexTable()
      Returns:
      Array of indices into constant pool of thrown exceptions.
    • getExceptionNames

      Returns:
      class names of thrown exceptions
    • getNumberOfExceptions

      public int getNumberOfExceptions()
      Returns:
      Length of exception table.
    • setExceptionIndexTable

      public void setExceptionIndexTable(int[] exceptionIndexTable)
      Parameters:
      exceptionIndexTable - the list of exception indexes Also redefines number_of_exceptions according to table length.
    • toString

      public String toString()
      Overrides:
      toString in class Attribute
      Returns:
      String representation, i.e., a list of thrown exceptions.