Top Description Fields Constructors Methods
org.aspectj.apache.bcel.generic

public final Class TargetLostException

extends Exception
Class Inheritance

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);
       }
     }
 
Author
M. Dahm
Version
$Id: TargetLostException.java,v 1.3 2008/05/28 23:52:55 aclement Exp $
See Also
InstructionHandle, InstructionList, InstructionTargeter

Field Summary

Modifier and TypeField and Description
private InstructionHandle[]

Constructor Summary

AccessConstructor and Description
pack-priv

Method Summary

Modifier and TypeMethod and Description
public InstructionHandle[]

Returns:

list of instructions still being targeted.
getTargets
()

Field Detail

targetsback to summary
private InstructionHandle[] targets

Constructor Detail

TargetLostExceptionback to summary
pack-priv TargetLostException(InstructionHandle[] t, String mesg)

Method Detail

getTargetsback to summary
public InstructionHandle[] getTargets()
Returns:InstructionHandle[]

list of instructions still being targeted.