Package pascal.taie.analysis.exception
Here we use the term "exception" by convention, actually, we handle
all subclasses of Throwable
, including both
Exception
and Error
.
We classify exceptions into four categories:
(1) VM errors, i.e., subclasses of VirtualMachineError
defined below:
InternalError
OutOfMemoryError
StackOverflowError
UnknownError
According to JVM Spec., Chapter 6.3, the above errors may be thrown
at any time during the operation of the Java Virtual Machine.
(2) Exceptions that may be implicitly thrown by JVM when executing each instruction. See JVM Spec., Chapter 6.5 for more details.
(3) Exceptions that are explicitly thrown by throw statements.
(4) Exceptions that are explicitly thrown by method invocations.
Generally, Tai-e ignores (1), and provides different strategies to handle exceptions in (2)-(4).
-
ClassDescriptionIntra-procedural catch analysis for computing the exceptions thrown by each Stmt will be caught by which Stmts, or not caught at all.