Struct rust_jvm::model::class_file::attribute::ExceptionTableEntry [] [src]

pub struct ExceptionTableEntry {
    pub start_pc: u2,
    pub end_pc: u2,
    pub handler_pc: u2,
    pub catch_type: constant_pool_index,
}

Each ExceptionTableEntry describes one exception handler in the code array. The order of the handlers in an exception_table array is significant (§2.10).

Fields

start_pc

Indicates the (inclusive) start of the range 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 exception handler is active in the range [start_pc, end_pc).

end_pc

Indicates the (exclusive) end of the range in the code array at which the exception handler is active. The value of end_pc must be a valid index into the code array of the opcode of an instruction or must be equal to the length of the code array. The exception handler is active in the range [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 and must be the index of the opcode of an instruction.

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 ConstantPoolInfo::Class structure representing a class of exceptions that this exception handler is designated to catch. The exception handler will be called only if the thrown exception is an instance of the given class or one of its subclasses.

Trait Implementations

Derived Implementations

impl Debug for ExceptionTableEntry

fn fmt(&self, __arg_0: &mut Formatter) -> Result