com.vladium.jcd.cls.attribute
Class Exception_info
java.lang.Object
com.vladium.jcd.cls.attribute.Exception_info
- All Implemented Interfaces:
- IClassFormatOutput, java.lang.Cloneable
public final class Exception_info
- extends java.lang.Object
- implements java.lang.Cloneable, IClassFormatOutput
An Exception_info is an entry layout format for ExceptionHandlerTable
. Each
entry contains the following items:
start_pc, end_pc
The values of the two items start_pc and end_pc indicate the ranges in the code
array at which the exception handler is active. The value of start_pc must be
a valid index into the code array of the opcode of an instruction. The value of
end_pc either must be a valid index into the code array of the opcode of an
instruction, or must be equal to code_length , the length of the code array.
The value of start_pc must be less than the value of end_pc.
The start_pc is inclusive and end_pc is exclusive; that is, the exception handler
must be active while the program counter is within the interval [start_pc, end_pc).
handler_pc
The value of the handler_pc item indicates the start of the exception handler.
The value of the item must be a valid index into the code array, must be the index
of the opcode of an instruction, and must be less than the value of the code_length
item.
catch_type
If the value of the catch_type item is nonzero, it must be a valid index into the
constant_pool table. The constant_pool entry at that index must be a
CONSTANT_Class_info
structure representing
a class of exceptions that this exception handler is designated to catch.
This class must be the class Throwable or one of its subclasses. The exception
handler will be called only if the thrown exception is an instance of the given
class or one of its subclasses.
If the value of the catch_type item is zero, this exception handler is called for
all exceptions. This is used to implement finally.
- Author:
- (C) 2001, Vlad Roubtsov
Methods inherited from class java.lang.Object |
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
m_start_pc
public int m_start_pc
m_end_pc
public int m_end_pc
m_handler_pc
public int m_handler_pc
m_catch_type
public int m_catch_type
Exception_info
public Exception_info(int start_pc,
int end_pc,
int handler_pc,
int catch_type)
Exception_info
Exception_info(UDataInputStream bytes)
throws java.io.IOException
- Throws:
java.io.IOException
toString
public java.lang.String toString()
- Overrides:
toString
in class java.lang.Object
clone
public java.lang.Object clone()
- Performs a deep copy.
- Overrides:
clone
in class java.lang.Object
writeInClassFormat
public void writeInClassFormat(UDataOutputStream out)
throws java.io.IOException
- Specified by:
writeInClassFormat
in interface IClassFormatOutput
- Throws:
java.io.IOException