All Packages  Class Hierarchy  This Package  Previous  Next  Index

Class de.fub.bytecode.generic.TargetLostException

java.lang.Object
   |
   +----java.lang.Throwable
           |
           +----java.lang.Exception
                   |
                   +----de.fub.bytecode.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);
       }
     }
 

Version:
$Id: TargetLostException.java,v 1.3 1999/05/04 13:14:57 dahm Exp $
Author:
M. Dahm
See Also:
InstructionHandle, InstructionList, InstructionTargeter

Method Index

 o getTargets()

Methods

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

All Packages  Class Hierarchy  This Package  Previous  Next  Index