Package sootup.interceptors
Enum Class LocalSplitter.ExceptionalFlow
- All Implemented Interfaces:
Serializable,Comparable<LocalSplitter.ExceptionalFlow>,Constable
- Enclosing class:
- LocalSplitter
Which Stmts can enter an exception handler. A Stmt that throws does not complete, so the
handler sees the value a local had before that Stmt; a Stmt that cannot enter the handler must
not carry its value there, or definitions whose values never reach the same read are merged
into one local, e.g. an int and a String kept in the same register.
Each mode lets more Stmts enter handlers than the one before it, so the walk from each definition follows more exceptional edges and visits more Stmts. VIRTUAL_MACHINE_ERRORS also looks up the superclasses of each handler type. Choose the narrowest mode that is right for the platform the code runs on.
-
Nested Class Summary
Nested classes/interfaces inherited from class java.lang.Enum
Enum.EnumDesc<E extends Enum<E>> -
Enum Constant Summary
Enum ConstantsEnum ConstantDescriptionEvery Stmt into every handler, e.g. for exceptions a debugger injects into a thread, or Thread.stop(Throwable) on Java 7 and older.Only Stmts that can throw.In addition, every Stmt into handlers that can catch a VirtualMachineError, which the JVM may throw at any point (JLS 11.1.3): handlers of Throwable, Error, VirtualMachineError, catch-alls, and subclasses of VirtualMachineError. -
Method Summary
Modifier and TypeMethodDescriptionReturns the enum constant of this class with the specified name.static LocalSplitter.ExceptionalFlow[]values()Returns an array containing the constants of this enum class, in the order they are declared.
-
Enum Constant Details
-
SYNCHRONOUS
Only Stmts that can throw. Right where no asynchronous exceptions exist, as on ART: its verifier merges only throwing instructions into handlers, and it does not support Thread.stop. -
VIRTUAL_MACHINE_ERRORS
In addition, every Stmt into handlers that can catch a VirtualMachineError, which the JVM may throw at any point (JLS 11.1.3): handlers of Throwable, Error, VirtualMachineError, catch-alls, and subclasses of VirtualMachineError. -
ANY
Every Stmt into every handler, e.g. for exceptions a debugger injects into a thread, or Thread.stop(Throwable) on Java 7 and older.
-
-
Method Details
-
values
Returns an array containing the constants of this enum class, in the order they are declared.- Returns:
- an array containing the constants of this enum class, in the order they are declared
-
valueOf
Returns the enum constant of this class with the specified name. The string must match exactly an identifier used to declare an enum constant in this class. (Extraneous whitespace characters are not permitted.)- Parameters:
name- the name of the enum constant to be returned.- Returns:
- the enum constant with the specified name
- Throws:
IllegalArgumentException- if this enum class has no constant with the specified nameNullPointerException- if the argument is null
-