Top Description Fields Constructors Methods
com.sun.org.apache.bcel.internal.generic

public final Class TargetLostException

extends Exception
Class Inheritance

Thrown by InstructionList.remove() when one or multiple disposed instructions are still being referenced by an 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 explicitly in a try { ... } catch. The following code illustrates how this may be done:

    ...
    try {
        il.delete(start_ih, end_ih);
    } catch(TargetLostException e) {
        for (InstructionHandle target : e.getTargets()) {
            for (InstructionTargeter targeter : target.getTargeters()) {
                targeter.updateTarget(target, new_target);
            }
        }
    }
See Also
InstructionHandle, InstructionList, InstructionTargeter

Field Summary

Modifier and TypeField and Description
private static final long
private final 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

serialVersionUIDback to summary
private static final long serialVersionUID

Hides java.lang.Exception.serialVersionUID.

targetsback to summary
private final InstructionHandle[] targets
Annotations
@SuppressWarnings:serial

Constructor Detail

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

Method Detail

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

list of instructions still being targeted.