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`

public final class TargetLostException extends Exception
Thrown by `InstructionList` 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`
  - Serialized Form

- ## Method Summary

  Modifier and Type
  Method
  Description
  `InstructionHandle[]`
  `getTargets()`
  Gets the list of instructions still being targeted.

  ### Methods inherited from class java.lang.Throwable

  `addSuppressed, fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, getSuppressed, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- ## Method Details

  - ### getTargets

    public InstructionHandle[] getTargets()
    Gets the list of instructions still being targeted.
    Returns:
      list of instructions still being targeted.