Package org.apache.bcel.generic
Class CodeExceptionGen
java.lang.Object
org.apache.bcel.generic.CodeExceptionGen
- All Implemented Interfaces:
Cloneable,InstructionTargeter
This class represents an exception handler, i.e., specifies the region where a handler is active and an instruction
where the actual handling is done. pool as parameters. Opposed to the JVM specification the end of the handled region
is set to be inclusive, i.e. all instructions between start and end are protected including the start and end
instructions (handles) themselves. The end of the region is automatically mapped to be exclusive when calling
getCodeException(), i.e., there is no difference semantically.
- See Also:
-
Constructor Summary
ConstructorsConstructorDescriptionCodeExceptionGen(InstructionHandle startPc, InstructionHandle endPc, InstructionHandle handlerPc, ObjectType catchType) Add an exception handler, i.e., specify region where a handler is active and an instruction where the actual handling is done. -
Method Summary
Modifier and TypeMethodDescriptionclone()booleanTests whether this targeter targets the specified instruction handle.Gets the type of the Exception to catch, 'null' for ANY.Gets CodeException object.
This relies on that the instruction list has already been dumped to byte code or that the 'setPositions' methods has been called for the instruction list.getEndPC()voidsetCatchType(ObjectType catchType) Sets the type of the Exception to catch.voidsetEndPC(InstructionHandle endPc) voidsetHandlerPC(InstructionHandle handlerPc) voidsetStartPC(InstructionHandle startPc) toString()voidupdateTarget(InstructionHandle oldIh, InstructionHandle newIh) Replaces the target of this targeter from this old handle to the new handle.
-
Constructor Details
-
CodeExceptionGen
public CodeExceptionGen(InstructionHandle startPc, InstructionHandle endPc, InstructionHandle handlerPc, ObjectType catchType) Add an exception handler, i.e., specify region where a handler is active and an instruction where the actual handling is done.- Parameters:
startPc- Start of handled region (inclusive)endPc- End of handled region (inclusive)handlerPc- Where handling is donecatchType- which exception is handled, null for ANY
-
-
Method Details
-
clone
-
containsTarget
Description copied from interface:InstructionTargeterTests whether this targeter targets the specified instruction handle.- Specified by:
containsTargetin interfaceInstructionTargeter- Parameters:
ih- the instruction handle to test.- Returns:
- true, if ih is target of this handler
-
getCatchType
Gets the type of the Exception to catch, 'null' for ANY. -
getCodeException
Gets CodeException object.
This relies on that the instruction list has already been dumped to byte code or that the 'setPositions' methods has been called for the instruction list.- Parameters:
cp- constant pool
-
getEndPC
- Returns:
- end of handled region (inclusive)
-
getHandlerPC
- Returns:
- start of handler
-
getStartPC
- Returns:
- start of handled region (inclusive)
-
setCatchType
Sets the type of the Exception to catch. Set 'null' for ANY. -
setEndPC
-
setHandlerPC
-
setStartPC
-
toString
-
updateTarget
Description copied from interface:InstructionTargeterReplaces the target of this targeter from this old handle to the new handle.- Specified by:
updateTargetin interfaceInstructionTargeter- Parameters:
oldIh- old target, either start or endnewIh- new target
-