Class ExceptionHandlerMap

java.lang.Object
edu.umd.cs.findbugs.ba.ExceptionHandlerMap

public class ExceptionHandlerMap extends Object
This class provides a convenient way of determining the exception handlers for instructions in a method. Essentially, it's a a map of InstructionHandles to lists of CodeExceptionGen objects. This class also maps instructions which are the start of exception handlers to the CodeExceptionGen object representing the handler.
Author:
David Hovemeyer
  • Constructor Summary

    Constructors
    Constructor
    Description
    ExceptionHandlerMap(org.apache.bcel.generic.MethodGen methodGen, TypeMerger merger)
    Constructor.
  • Method Summary

    Modifier and Type
    Method
    Description
    org.apache.bcel.generic.CodeExceptionGen
    getHandlerForStartInstruction(org.apache.bcel.generic.InstructionHandle start)
    If the given instruction is the start of an exception handler, get the CodeExceptionGen object representing the handler.
    List<org.apache.bcel.generic.CodeExceptionGen>
    getHandlerList(org.apache.bcel.generic.InstructionHandle handle)
    Get the list of exception handlers (CodeExceptionGen objects) which are specified to handle exceptions for the instruction whose handle is given.
    static org.apache.bcel.generic.CodeExceptionGen
    merge(TypeMerger m, org.apache.bcel.generic.CodeExceptionGen e1, org.apache.bcel.generic.CodeExceptionGen e2)
     

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • ExceptionHandlerMap

      public ExceptionHandlerMap(org.apache.bcel.generic.MethodGen methodGen, TypeMerger merger)
      Constructor.
      Parameters:
      methodGen - the method to build the map for
  • Method Details

    • getHandlerList

      public List<org.apache.bcel.generic.CodeExceptionGen> getHandlerList(org.apache.bcel.generic.InstructionHandle handle)
      Get the list of exception handlers (CodeExceptionGen objects) which are specified to handle exceptions for the instruction whose handle is given. Note that the handlers in the returned list are in order of priority, as defined in the method's exception handler table.
      Parameters:
      handle - the handle of the instruction we want the exception handlers for
      Returns:
      the list of exception handlers, or null if there are no handlers registered for the instruction
    • getHandlerForStartInstruction

      public org.apache.bcel.generic.CodeExceptionGen getHandlerForStartInstruction(org.apache.bcel.generic.InstructionHandle start)
      If the given instruction is the start of an exception handler, get the CodeExceptionGen object representing the handler.
      Parameters:
      start - the instruction
      Returns:
      the CodeExceptionGen object, or null if the instruction is not the start of an exception handler
    • merge

      public static org.apache.bcel.generic.CodeExceptionGen merge(@CheckForNull TypeMerger m, org.apache.bcel.generic.CodeExceptionGen e1, org.apache.bcel.generic.CodeExceptionGen e2)