FileDocCategorySizeDatePackage
TargetLostException.javaAPI DocJava SE 6 API4216Tue Jun 10 00:22:22 BST 2008com.sun.org.apache.bcel.internal.generic

TargetLostException

public final class TargetLostException extends 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);
}
}
see
InstructionHandle
see
InstructionList
see
InstructionTargeter
version
$Id: TargetLostException.java,v 1.1.2.1 2005/07/31 23:45:34 jeffsuttor Exp $
author
M. Dahm

Fields Summary
private InstructionHandle[]
targets
Constructors Summary
TargetLostException(InstructionHandle[] t, String mesg)

    super(mesg);
    targets = t;
  
Methods Summary
public com.sun.org.apache.bcel.internal.generic.InstructionHandle[]getTargets()

return
list of instructions still being targeted.

 return targets;