ExceptionTablepublic 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). |
Fields Summary |
---|
private int | number_of_exceptions | private int[] | exception_index_table |
Constructors Summary |
---|
public ExceptionTable(ExceptionTable c)Initialize from another object. Note that both objects use the same
references (shallow copy). Use copy() for a physical copy.
this(c.getNameIndex(), c.getLength(), c.getExceptionIndexTable(),
c.getConstantPool());
| public ExceptionTable(int name_index, int length, int[] exception_index_table, ConstantPool constant_pool)
super(Constants.ATTR_EXCEPTIONS, name_index, length, constant_pool);
setExceptionIndexTable(exception_index_table);
| ExceptionTable(int name_index, int length, DataInputStream file, ConstantPool constant_pool)Construct object from file stream.
this(name_index, length, (int[])null, constant_pool);
number_of_exceptions = file.readUnsignedShort();
exception_index_table = new int[number_of_exceptions];
for(int i=0; i < number_of_exceptions; i++)
exception_index_table[i] = file.readUnsignedShort();
|
Methods Summary |
---|
public void | accept(com.sun.org.apache.bcel.internal.classfile.Visitor v)Called by objects that are traversing the nodes of the tree implicitely
defined by the contents of a Java class. I.e., the hierarchy of methods,
fields, attributes, etc. spawns a tree of objects.
v.visitExceptionTable(this);
| public com.sun.org.apache.bcel.internal.classfile.Attribute | copy(com.sun.org.apache.bcel.internal.classfile.ConstantPool constant_pool)
ExceptionTable c = (ExceptionTable)clone();
c.exception_index_table = (int[])exception_index_table.clone();
c.constant_pool = constant_pool;
return c;
| public final void | dump(java.io.DataOutputStream file)Dump exceptions attribute to file stream in binary format.
super.dump(file);
file.writeShort(number_of_exceptions);
for(int i=0; i < number_of_exceptions; i++)
file.writeShort(exception_index_table[i]);
| public final int[] | getExceptionIndexTable()return exception_index_table;
| public final java.lang.String[] | getExceptionNames()
String[] names = new String[number_of_exceptions];
for(int i=0; i < number_of_exceptions; i++)
names[i] = constant_pool.getConstantString(exception_index_table[i],
Constants.CONSTANT_Class).
replace('/", '.");
return names;
| public final int | getNumberOfExceptions() return number_of_exceptions;
| public final void | setExceptionIndexTable(int[] exception_index_table)
this.exception_index_table = exception_index_table;
number_of_exceptions = (exception_index_table == null)? 0 :
exception_index_table.length;
| public final java.lang.String | toString()
StringBuffer buf = new StringBuffer("");
String str;
for(int i=0; i < number_of_exceptions; i++) {
str = constant_pool.getConstantString(exception_index_table[i],
Constants.CONSTANT_Class);
buf.append(Utility.compactClassName(str, false));
if(i < number_of_exceptions - 1)
buf.append(", ");
}
return buf.toString();
|
|