de.fub.bytecode.generic
Class CodeExceptionGen
java.lang.Object
|
+--de.fub.bytecode.generic.CodeExceptionGen
- All Implemented Interfaces:
- java.lang.Cloneable, InstructionTargeter
- public final class CodeExceptionGen
- extends java.lang.Object
- implements InstructionTargeter, java.lang.Cloneable
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.
- Version:
- $Id: CodeExceptionGen.java,v 1.6 2001/07/02 12:08:17 dahm Exp $
- Author:
- M. Dahm
- See Also:
MethodGen
,
CodeException
,
InstructionHandle
Methods inherited from class java.lang.Object |
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
CodeExceptionGen
public CodeExceptionGen(InstructionHandle start_pc,
InstructionHandle end_pc,
InstructionHandle handler_pc,
ObjectType catch_type)
- Add an exception handler, i.e., specify region where a handler is active and an
instruction where the actual handling is done.
- Parameters:
start_pc
- Start of handled region (inclusive)end_pc
- End of handled region (inclusive)handler_pc
- Where handling is donecatch_type
- which exception is handled, null for ANY
getCodeException
public CodeException getCodeException(ConstantPoolGen cp)
- Get CodeException object.
This relies on that the instruction list has already been dumped
to byte code or or that the `setPositions' methods has been
called for the instruction list.
- Parameters:
cp
- constant pool
setStartPC
public void setStartPC(InstructionHandle start_pc)
setEndPC
public void setEndPC(InstructionHandle end_pc)
setHandlerPC
public void setHandlerPC(InstructionHandle handler_pc)
updateTarget
public void updateTarget(InstructionHandle old_ih,
InstructionHandle new_ih)
- Specified by:
updateTarget
in interface InstructionTargeter
- Parameters:
old_ih
- old target, either start or endnew_ih
- new target
containsTarget
public boolean containsTarget(InstructionHandle ih)
- Specified by:
containsTarget
in interface InstructionTargeter
- Returns:
- true, if ih is target of this handler
setCatchType
public void setCatchType(ObjectType catch_type)
- Sets the type of the Exception to catch. Set 'null' for ANY.
getCatchType
public ObjectType getCatchType()
- Gets the type of the Exception to catch, 'null' for ANY.
getStartPC
public InstructionHandle getStartPC()
- Returns:
- start of handled region (inclusive)
getEndPC
public InstructionHandle getEndPC()
- Returns:
- end of handled region (inclusive)
getHandlerPC
public InstructionHandle getHandlerPC()
- Returns:
- start of handler
toString
public java.lang.String toString()
- Overrides:
toString
in class java.lang.Object
clone
public java.lang.Object clone()
- Overrides:
clone
in class java.lang.Object