Package org.apache.bcel.generic
Class TargetLostException
java.lang.Object
java.lang.Throwable
java.lang.Exception
org.apache.bcel.generic.TargetLostException
- All Implemented Interfaces:
Serializable
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 explicitely 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); } } }
-
Method Summary
Methods inherited from class java.lang.Throwable
addSuppressed, fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, getSuppressed, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString
-
Method Details
-
getTargets
- Returns:
- list of instructions still being targeted.
-