java.lang.Object
java.lang.Throwable
java.lang.Exception
org.apache.bcel.generic.TargetLostException
- All Implemented Interfaces:
- java.io.Serializable
- public final class TargetLostException
- extends java.lang.Exception
Thrown by InstructionList.remove() when one or multiple disposed instruction
are still being referenced by a InstructionTargeter object. I.e. the
InstructionTargeter has to be notified that (one of) the InstructionHandle it
is referencing is being removed from the InstructionList and thus not valid anymore.
Making this an exception instead of a return value forces the user to handle
these case explicitely in a try { ... } catch. The following code illustrates
how this may be done:
...
try {
il.delete(start_ih, end_ih);
} catch(TargetLostException e) {
InstructionHandle[] targets = e.getTargets();
for(int i=0; i < targets.length; i++) {
InstructionTargeter[] targeters = targets[i].getTargeters();
for(int j=0; j < targeters.length; j++)
targeters[j].updateTarget(targets[i], new_target);
}
}
- Version:
- $Id: TargetLostException.java 386056 2006-03-15 11:31:56Z tcurdt $
| Nested classes inherited from class java.lang.Throwable |
|
| Fields inherited from class java.lang.Exception |
|
| Fields inherited from class java.lang.Throwable |
|
| Methods inherited from class java.lang.Throwable |
fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString |
targets
private InstructionHandle[] targets
TargetLostException
TargetLostException(InstructionHandle[] t,
java.lang.String mesg)
getTargets
public InstructionHandle[] getTargets()