Package edu.umd.cs.findbugs.ba
Class ExceptionHandlerMap
- java.lang.Object
-
- edu.umd.cs.findbugs.ba.ExceptionHandlerMap
-
public class ExceptionHandlerMap extends java.lang.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
All Methods Static Methods Instance Methods Concrete Methods 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.java.util.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)
-
-
-
Constructor Detail
-
ExceptionHandlerMap
public ExceptionHandlerMap(org.apache.bcel.generic.MethodGen methodGen, TypeMerger merger)
Constructor.- Parameters:
methodGen
- the method to build the map for
-
-
Method Detail
-
getHandlerList
public java.util.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)
-
-