Class ExceptionTable
java.lang.Object
org.apache.bcel.classfile.Attribute
org.apache.bcel.classfile.ExceptionTable
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:
-
Field Summary
Fields inherited from class Attribute
constant_pool, EMPTY_ARRAY, length, name_index, tagModifier and TypeFieldDescriptionprotected ConstantPoolDeprecated.(since 6.0) will be made private; do not access directly, use getter/setter.static final Attribute[]Empty array.protected intDeprecated.(since 6.0) (since 6.0) will be made private; do not access directly, use getter/setter.protected intDeprecated.(since 6.0) will be made private; do not access directly, use getter/setter.protected byteDeprecated.(since 6.0) will be made private; do not access directly, use getter/setter. -
Constructor Summary
ConstructorsConstructorDescriptionExceptionTable(int nameIndex, int length, int[] exceptionIndexTable, ConstantPool constantPool) Constructs an ExceptionTable.Initialize from another object. -
Method Summary
Modifier and TypeMethodDescriptionvoidCalled by objects that are traversing the nodes of the tree implicitly defined by the contents of a Java class.copy(ConstantPool constantPool) Creates a deep copy of this attribute.voiddump(DataOutputStream file) Dumps exceptions attribute to file stream in binary format.int[]Gets the array of indices into constant pool of thrown exceptions.String[]Gets the class names of thrown exceptions.intGets the length of exception table.voidsetExceptionIndexTable(int[] exceptionIndexTable) Sets the exception index table.toString()Methods inherited from class Attribute
addAttributeReader, addAttributeReader, clone, getConstantPool, getLength, getName, getNameIndex, getTag, println, readAttribute, readAttribute, readAttribute, removeAttributeReader, setConstantPool, setLength, setNameIndexModifier and TypeMethodDescriptionstatic voidaddAttributeReader(String name, AttributeReader attributeReader) Deprecated.(6.0) UseAttribute.addAttributeReader(String, UnknownAttributeReader)instead.static voidaddAttributeReader(String name, UnknownAttributeReader unknownAttributeReader) Add an Attribute reader capable of parsing (user-defined) attributes named "name".clone()Use copy() if you want to have a deep copy(), that is, with all references copied correctly.final ConstantPoolGets the constant pool used by this object.final intGets the length of attribute field in bytes.getName()Gets the name of the attribute.final intGets the name index in constant pool of attribute name.final bytegetTag()Gets the tag of attribute, that is, its type.protected static voidPrints a message to stderr if debug mode is enabled.static AttributereadAttribute(DataInput dataInput, ConstantPool constantPool) Reads one attribute using standard eight-byte Code headers.static AttributereadAttribute(DataInput dataInput, ConstantPool constantPool, boolean compactCodeHeader) Reads one attribute using the selected Code header layout.static AttributereadAttribute(DataInputStream dataInputStream, ConstantPool constantPool) Reads one attribute using standard eight-byte Code headers.static voidremoveAttributeReader(String name) Remove attribute readerfinal voidsetConstantPool(ConstantPool constantPool) Sets the constant pool to be used for this object.final voidsetLength(int length) Sets the length in bytes.final voidsetNameIndex(int nameIndex) Sets the name index of attribute.
-
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) Constructs an ExceptionTable.- 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
Called by objects that are traversing the nodes of the tree implicitly defined by the contents of a Java class. That is, the hierarchy of methods, fields, attributes, and so on spawns a tree of objects. -
copy
Creates a deep copy of this attribute. -
dump
Dumps exceptions attribute to file stream in binary format.- Overrides:
dumpin classAttribute- Parameters:
file- Output file stream.- Throws:
IOException- Thrown if an I/O error occurs.
-
getExceptionIndexTable
Gets the array of indices into constant pool of thrown exceptions.- Returns:
- Array of indices into constant pool of thrown exceptions.
-
getExceptionNames
Gets the class names of thrown exceptions.- Returns:
- class names of thrown exceptions.
-
getNumberOfExceptions
Gets the length of exception table.- Returns:
- Length of exception table.
-
setExceptionIndexTable
Sets the exception index table.- Parameters:
exceptionIndexTable- The list of exception indexes Also redefines number_of_exceptions according to table length.
-
toString
-