soot.toolkits.graph
Interface ExceptionalGraph.ExceptionDest<N>

All Known Implementing Classes:
ExceptionalBlockGraph.ExceptionDest, ExceptionalUnitGraph.ExceptionDest
Enclosing interface:
ExceptionalGraph<N>

public static interface ExceptionalGraph.ExceptionDest<N>

Data structure to represent the fact that a given Trap will catch some subset of the exceptions which may be thrown by a given graph node.

Note that these ``destinations'' are different from the edges in the CFG proper which are returned by getSuccsOf() and getPredsOf(). An edge from a to b in the CFG represents the fact that after node a executes (perhaps only partially, if it throws an exception after producing a side effect), execution may proceed to node b. An ExceptionDest from a to b, on the other hand, says that when a fails to execute, execution may proceed to b instead.


Method Summary
 N getHandlerNode()
          Returns the CFG node corresponding to the beginning of the exception handler that catches the exceptions (that is, the node that includes trap().getBeginUnit()).
 ThrowableSet getThrowables()
          Returns the exceptions thrown to this destination.
 Trap getTrap()
          Returns the trap corresponding to this destination.
 

Method Detail

getTrap

Trap getTrap()
Returns the trap corresponding to this destination.

Returns:
either a Trap representing the handler that catches the exceptions, if there is such a handler within the method, or null if there is no such handler and the exceptions cause the method to terminate abruptly.

getThrowables

ThrowableSet getThrowables()
Returns the exceptions thrown to this destination.

Returns:
a ThrowableSet representing the exceptions which may be caught by this ExceptionDest's trap.

getHandlerNode

N getHandlerNode()
Returns the CFG node corresponding to the beginning of the exception handler that catches the exceptions (that is, the node that includes trap().getBeginUnit()).

Returns:
the node in this graph which represents the beginning of the handler which catches these exceptions, or null if there is no such handler and the exceptions cause the method to terminate abruptly.