FileDocCategorySizeDatePackage
ExceptionsAttribute.javaAPI DocJ2ME CLDC 1.13489Wed Feb 05 15:56:04 GMT 2003kdp.classparser.attributes

ExceptionsAttribute

public class ExceptionsAttribute extends Attribute
Encapsulates the Exceptions attribute of a Java class file.
author
Aaron Dietrich
version
$Id: ExceptionsAttribute.java,v 1.1.1.1 2000/07/07 13:34:23 jrv Exp $ Revision History $Log: ExceptionsAttribute.java,v $ Revision 1.1.1.1 2000/07/07 13:34:23 jrv Initial import of kdp code Revision 1.1.1.1 2000/05/31 19:14:48 ritsun Initial import of kvmdt to CVS Revision 1.1 2000/04/25 00:30:39 ritsun Initial revision

Fields Summary
private int
attributeNameIndex
index into the constant pool table containing the name of this class
private int
attributeLength
length of this attribute in bytes
private int
numberOfExceptions
the number of exceptions represented by this exceptions attribute
private int[]
exceptionIndexTable
the table of exceptions represented by this exceptions attribute
Constructors Summary
public ExceptionsAttribute(DataInputStream iStream, int attributeNameIndex, int attributeLength)
Constructor. Reads the ExceptionsAttribute attribute from the class file.

param
iStream the input stream on which to read the class file
param
attributeNameIndex attributeNameIndex member of attribute structure.
param
attributeLength attributeLength member of attribute structure.
exception
IOException pass IOExceptions up

      this.attributeNameIndex = attributeNameIndex;
      this.attributeLength = attributeLength;

      numberOfExceptions = iStream.readUnsignedShort ();

      exceptionIndexTable = new int[numberOfExceptions];
      for (int lcv = 0; lcv < numberOfExceptions; ++lcv)
        exceptionIndexTable[lcv] = iStream.readUnsignedShort ();
     
Methods Summary
public java.lang.StringtoString(ConstantPoolInfo[] constantPool)
Returns the ExceptionsAttribute attribute in a nice easy to read format as a string.

param
constantPool constant pool of the class file
return
String the attribute as a nice easy to read String

      ConstantClassInfo            c;
      ConstantUtf8Info            utf8Info;
      String                        s = new String ("");

      utf8Info = (ConstantUtf8Info) constantPool[attributeNameIndex];
      s = s + utf8Info.toString ();

      for (int lcv = 0; lcv < numberOfExceptions; ++lcv)
        {
         int index = exceptionIndexTable[lcv];
         c = (ConstantClassInfo) constantPool[index];
         utf8Info = (ConstantUtf8Info) constantPool[c.getNameIndex ()];

         s = s + "\n\t\t\tThrows\t";
         s = s + StringParser.parseClassName (utf8Info.toString ());
        }
      return s;