Class ThrowableAnalysis


  • public class ThrowableAnalysis
    extends java.lang.Object
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static com.ensoftcorp.atlas.core.query.Q findCatchForThrows​(com.ensoftcorp.atlas.core.query.Q input)
      Given a method or a control flow block which throws an exception, returns a graph showing the matching catch blocks.
      static com.ensoftcorp.atlas.core.query.Q findThrowForCatch​(com.ensoftcorp.atlas.core.query.Q input)
      Given a method or control flow block which catches exceptions, returns a graph showing the matching throw statements.
      static com.ensoftcorp.atlas.core.query.Q getCheckedExceptions()
      Returns all checked exceptions Checked exceptions extend the Exception type, but do not extend the RuntimeException type
      static com.ensoftcorp.atlas.core.query.Q getCheckedThrowables()
      Returns all checked Throwable types
      static com.ensoftcorp.atlas.core.query.Q getErrors()
      Returns all Error types Errors are unchecked Throwable types that subclass Error
      static com.ensoftcorp.atlas.core.query.Q getThrowables()
      Returns all Throwable types Throwable types are checked, except for subclasses of Error and RuntimeException types
      static com.ensoftcorp.atlas.core.query.Q getUncheckedExceptions()
      Returns all unchecked Exceptions Unchecked exceptions extend the RuntimeException type
      static com.ensoftcorp.atlas.core.query.Q getUncheckedThrowables()
      Returns all unchecked Throwable types
      static com.ensoftcorp.atlas.core.query.Q stack​(com.ensoftcorp.atlas.core.query.Q context, com.ensoftcorp.atlas.core.query.Q origin, com.ensoftcorp.atlas.core.script.CommonQueries.TraversalDirection direction)
      Builds a "stack graph".
      static com.ensoftcorp.atlas.core.query.Q stack​(com.ensoftcorp.atlas.core.query.Q origin, com.ensoftcorp.atlas.core.script.CommonQueries.TraversalDirection direction)
      Builds a "stack graph".
      • Methods inherited from class java.lang.Object

        equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Method Detail

      • getThrowables

        public static com.ensoftcorp.atlas.core.query.Q getThrowables()
        Returns all Throwable types Throwable types are checked, except for subclasses of Error and RuntimeException types
        Returns:
      • getCheckedThrowables

        public static com.ensoftcorp.atlas.core.query.Q getCheckedThrowables()
        Returns all checked Throwable types
        Returns:
      • getUncheckedThrowables

        public static com.ensoftcorp.atlas.core.query.Q getUncheckedThrowables()
        Returns all unchecked Throwable types
        Returns:
      • getErrors

        public static com.ensoftcorp.atlas.core.query.Q getErrors()
        Returns all Error types Errors are unchecked Throwable types that subclass Error
        Returns:
      • getCheckedExceptions

        public static com.ensoftcorp.atlas.core.query.Q getCheckedExceptions()
        Returns all checked exceptions Checked exceptions extend the Exception type, but do not extend the RuntimeException type
        Returns:
      • getUncheckedExceptions

        public static com.ensoftcorp.atlas.core.query.Q getUncheckedExceptions()
        Returns all unchecked Exceptions Unchecked exceptions extend the RuntimeException type
        Returns:
      • stack

        public static com.ensoftcorp.atlas.core.query.Q stack​(com.ensoftcorp.atlas.core.query.Q origin,
                                                              com.ensoftcorp.atlas.core.script.CommonQueries.TraversalDirection direction)
        Builds a "stack graph". A stack graph combines CALL (per cf), CONTROL_FLOW, and DECLARES edges to build a complete call graph at the level of PER_CONTRO_FLOW. Ordinarily, this would have to be done piecewise. Intended use: You have a control flow block X where something interesting happens, and you want to find other control flow blocks Y which are in stacks starting at X that have something else interesting. Use this to flow forward and find Y. Operates in the index context.
        Parameters:
        origin -
        direction -
        Returns:
      • stack

        public static com.ensoftcorp.atlas.core.query.Q stack​(com.ensoftcorp.atlas.core.query.Q context,
                                                              com.ensoftcorp.atlas.core.query.Q origin,
                                                              com.ensoftcorp.atlas.core.script.CommonQueries.TraversalDirection direction)
        Builds a "stack graph". A stack graph combines CALL (per cf), CONTROL_FLOW, and DECLARES edges to build a complete call graph at the level of PER_CONTRO_FLOW. Ordinarily, this would have to be done piecewise. Intended use: You have a control flow block X where something interesting happens, and you want to find other control flow blocks Y which are in stacks starting at X that have something else interesting. Use this to flow forward and find Y. Operates in the given context.
        Parameters:
        context -
        origin -
        direction -
        Returns:
      • findCatchForThrows

        public static com.ensoftcorp.atlas.core.query.Q findCatchForThrows​(com.ensoftcorp.atlas.core.query.Q input)
        Given a method or a control flow block which throws an exception, returns a graph showing the matching catch blocks. Operates within the given context.
        Parameters:
        context -
        input -
        Returns:
      • findThrowForCatch

        public static com.ensoftcorp.atlas.core.query.Q findThrowForCatch​(com.ensoftcorp.atlas.core.query.Q input)
        Given a method or control flow block which catches exceptions, returns a graph showing the matching throw statements. Operates within the given context.
        Parameters:
        context -
        input -
        Returns: