edu.umd.cs.findbugs.ba

Class 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
ExceptionHandlerMap(MethodGen methodGen)
Constructor.
Method Summary
CodeExceptionGengetHandlerForStartInstruction(InstructionHandle start)
If the given instruction is the start of an exception handler, get the CodeExceptionGen object representing the handler.
List<CodeExceptionGen>getHandlerList(InstructionHandle handle)
Get the list of exception handlers (CodeExceptionGen objects) which are specified to handle exceptions for the instruction whose handle is given.

Constructor Detail

ExceptionHandlerMap

public ExceptionHandlerMap(MethodGen methodGen)
Constructor.

Parameters: methodGen the method to build the map for

Method Detail

getHandlerForStartInstruction

public CodeExceptionGen getHandlerForStartInstruction(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

getHandlerList

public List<CodeExceptionGen> getHandlerList(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

FindBugs™ is licenced under the LGPL. Copyright © 2006 University of Maryland.