com.vladium.jcd.cls.attribute
Interface IDeclaredExceptionTable

All Superinterfaces:
java.lang.Cloneable, IClassFormatOutput
All Known Implementing Classes:
DeclaredExceptionTable

public interface IDeclaredExceptionTable
extends java.lang.Cloneable, IClassFormatOutput

This table is a structure nested within ExceptionsAttribute_info structure. It is a table of unsigned 16-bit indexes into constant pool. Each index points to a CONSTANT_Class_info entry representing an exception a method can throw [in unspecified order].

Author:
(C) 2001, Vlad Roubtsov

Method Summary
 int add(int exception_index)
          Appends a new exception class pointer to the collection.
 java.lang.Object clone()
           
 int get(int offset)
          Returns the CONSTANT_Class_info constant pool index for offset'th exception type thrown by the method that contains this this exception index table in its ExceptionsAttribute_info attribute.
 long length()
          Returns the total length of this table when converted to .class format [including 2 count bytes]
 int set(int offset, int exception_index)
          Replaces exception class pointer number 'offset' with new value 'interface_index'.
 int size()
          Returns the number of exception types the containing method professes to throw.
 
Methods inherited from interface com.vladium.jcd.compiler.IClassFormatOutput
writeInClassFormat
 

Method Detail

get

int get(int offset)
Returns the CONSTANT_Class_info constant pool index for offset'th exception type thrown by the method that contains this this exception index table in its ExceptionsAttribute_info attribute.

Parameters:
offset - thrown exception class number [must be in [0, size()) range]
Returns:
constant pool index [always positive]
Throws:
java.lang.IndexOutOfBoundsException - if 'offset' is outside of valid range

size

int size()
Returns the number of exception types the containing method professes to throw.


length

long length()
Returns the total length of this table when converted to .class format [including 2 count bytes]


clone

java.lang.Object clone()

add

int add(int exception_index)
Appends a new exception class pointer to the collection. No duplicate checks are made.

Parameters:
exception_index - constant pool index [must be positive; input not validated]
Returns:
offset of the new pointer [same as size()-1 when called after this method]

set

int set(int offset,
        int exception_index)
Replaces exception class pointer number 'offset' with new value 'interface_index'. No duplicate checks are made. It is the responsibility of the caller to ensure that the relevant CONSTANT_Class_info descriptor will be found in the constant pool, in the slot pointed to by 'exception_index'.

Parameters:
offset - thrown exception class number [must be in [0, size()) range]
exception_index - constant pool index [must be positive; input not validated]
Returns:
previous value at the given index [always positive]
Throws:
java.lang.IndexOutOfBoundsException - if 'offset' is outside of valid range