<s> package org . eclipse . jdt . internal . core . util ; import org . eclipse . jdt . core . util . ClassFormatException ; import org . eclipse . jdt . core . util . IConstantPool ; import org . eclipse . jdt . core . util . IConstantPoolConstant ; import org . eclipse . jdt . core . util . IConstantPoolEntry ; import org . eclipse . jdt . core . util . IExceptionTableEntry ; public class ExceptionTableEntry extends ClassFileStruct implements IExceptionTableEntry { private int startPC ; private int endPC ; private int handlerPC ; private int catchTypeIndex ; private char [ ] catchType ; ExceptionTableEntry ( byte [ ] classFileBytes , IConstantPool constantPool , int offset ) throws ClassFormatException { this . startPC = u2At ( classFileBytes , 0 , offset ) ; this . endPC = u2At ( classFileBytes , 2 , offset ) ; this . handlerPC = u2At ( classFileBytes , 4 , offset ) ; this . catchTypeIndex = u2At ( classFileBytes , 6 , offset ) ; if ( this . catchTypeIndex != 0 ) { IConstantPoolEntry constantPoolEntry = constantPool . decodeEntry ( this . catchTypeIndex ) ; if ( constantPoolEntry . getKind ( ) != IConstantPoolConstant . CONSTANT_Class ) { throw new ClassFormatException ( ClassFormatException . INVALID_CONSTANT_POOL_ENTRY ) ; } this . catchType = constantPoolEntry . getClassInfoName ( ) ; } } public int getStartPC ( ) { return this . startPC ; } public int getEndPC ( ) { return this . endPC ; } public int getHandlerPC ( ) { return this . handlerPC ; } public int getCatchTypeIndex ( ) { return this . catchTypeIndex ; } public char [ ] getCatchType ( ) { return this . catchType ; } } </s>