Class ExceptionHandler

java.lang.Object
com.ibm.wala.shrike.shrikeBT.ExceptionHandler

public final class ExceptionHandler extends Object
An ExceptionHandler represents a single handler covering a single instruction. It simply tells us what kind of exception to catch and where to dispatch the exception to.

ExceptionHandlers are immutable. It is quite legal to save a reference to an exception handler and use it in any other context. We also treat arrays of ExceptionHandlers as immutable. Therefore the following code can be used to build an exception handler table that specifies two handlers covering an entire block of code:


   ExceptionHandler[] hs = {
     new ExceptionHandler(110, "Ljava.lang.NullPointerException;"),
     new ExceptionHandler(220, "Ljava.io.IOException;");
   };
   for (int i = 0; i < 100; i++) {
     handlers[i] = hs;
   }
 
  • Constructor Details

    • ExceptionHandler

      public ExceptionHandler(int handler, String catchClass, Object catchClassLoader)
      Parameters:
      handler - the label for the handler code
      catchClass - the type of exception that should be caught (in JVM format), or null if all exceptions should be caught (as with 'finally')
    • ExceptionHandler

      public ExceptionHandler(int handler, String catchClass)
  • Method Details

    • getHandler

      public int getHandler()
      Returns:
      the label of the handler code
    • getCatchClassLoader

      public Object getCatchClassLoader()
    • getCatchClass

      public String getCatchClass()
      Returns:
      the type of exceptions to be caught, or null if all exceptions should be caught
    • equals

      public boolean equals(ExceptionHandler h)
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object