public abstract class ExceptionTable extends Object
Modifier and Type | Field and Description |
---|---|
protected static int |
CATCH_START |
protected static int |
EX_TYPE |
protected static int |
TRY_END |
protected static int |
TRY_START
An eTable array encodes the exception tables using 4 ints for each
|
Constructor and Description |
---|
ExceptionTable() |
Modifier and Type | Method and Description |
---|---|
static int |
findCatchBlockForInstruction(int[] eTable,
Offset instructionOffset,
RVMType exceptionType)
Return the machine code offset for the catch block that will handle
the argument exceptionType,or -1 if no such catch block exists.
|
static void |
printExceptionTable(int[] eTable)
Print an encoded exception table.
|
static void |
printExceptionTableUninterruptible(int[] eTable)
Prints an exception table.
|
private static void |
printLessNicelyFormattedAndUninterruptible(int[] eTable,
int i) |
private static void |
printNicelyFormattedAndInterruptible(int[] eTable,
int i) |
private static void |
writeExceptionTableHeader() |
protected static final int TRY_START
protected static final int TRY_END
protected static final int CATCH_START
protected static final int EX_TYPE
public ExceptionTable()
public static int findCatchBlockForInstruction(int[] eTable, Offset instructionOffset, RVMType exceptionType)
eTable
- the encoded exception table to searchinstructionOffset
- the offset of the instruction after the PEI.exceptionType
- the type of exception that was raisedpublic static void printExceptionTable(int[] eTable)
eTable
- the encoded exception table to print.private static void writeExceptionTableHeader()
private static void printNicelyFormattedAndInterruptible(int[] eTable, int i)
public static void printExceptionTableUninterruptible(int[] eTable)
This method does the same thing as printExceptionTable(int[])
but
with less nicely formatted output because of the constraints imposed by
the requirements for uninterruptible code.
eTable
- the exception table to printprivate static void printLessNicelyFormattedAndUninterruptible(int[] eTable, int i)