If true
, all instructions that may raise an arithmetic exception (e.g., idiv,
ldiv) should do so if it is impossible to statically determine that no
exception will occur.
If true
, all instructions that may raise an arithmetic exception (e.g., idiv,
ldiv) should do so if it is impossible to statically determine that no
exception will occur. But, if we can statically determine that the operation will
raise an exception then the exception will be thrown – independently of this
setting. Furthermore, if we can statically determine that no exception will be
raised, no exception will be thrown. Hence, this setting only affects computations
with values with incomplete information.
If true
an ArrayIndexOutOfBoundsException
is thrown if the index cannot
be verified to be valid.
If true
an ArrayStoreException
is thrown if it cannot be verified that the
value can be stored in the array.
If true
a ClassCastException
is thrown by CHECKCAST
instructions if it
cannot be verified that no ClassCastException
will be thrown.
Throw a ClassNotFoundException
if the a specific reference type is not
known in the current context.
Throw a ClassNotFoundException
if the a specific reference type is not
known in the current context. The context is typically a specific Project
.
Determines the behavior how method calls are handled where the exceptions that the called method may throw are unknown.
If true
then monitorexit
and the (XXX)return
instructions will throw
IllegalMonitorStateException
s unless the analysis is able to determine that
the exception is guaranteed to be raised.
If true
a NegativeArraySizeException
is thrown if the index cannot be
verified to be positive.
Returns true
if potential NullPointerExceptions
should be thrown and false
if such NullPointerExceptions
should be ignored.
Returns true
if potential NullPointerExceptions
should be thrown and false
if such NullPointerExceptions
should be ignored. However, if the interpreter
identifies a situation in which a NullPointerException
is guaranteed to be
thrown, it will be thrown.
Returns true
if potential NullPointerExceptions
should be thrown and false
if such NullPointerExceptions
should be ignored.
Returns true
if potential NullPointerExceptions
should be thrown and false
if such NullPointerExceptions
should be ignored. However, if the interpreter
identifies a situation in which a NullPointerException
is guaranteed to be
thrown, it will be thrown.
Returns true
if potential NullPointerExceptions
should be thrown and false
if such NullPointerExceptions
should be ignored.
Returns true
if potential NullPointerExceptions
should be thrown and false
if such NullPointerExceptions
should be ignored. However, if the interpreter
identifies a situation in which a NullPointerException
is guaranteed to be
thrown, it will be thrown. Example:
def demo(o : Object) { o.toString // - If "true", a NullPointerException will ALSO be thrown; // the operation also succeeds. // - If "false" the operation will "just" succeed }
Returns true
if potential NullPointerExceptions
should be thrown and false
if such NullPointerExceptions
should be ignored.
Returns true
if potential NullPointerExceptions
should be thrown and false
if such NullPointerExceptions
should be ignored. However, if the interpreter
identifies a situation in which a NullPointerException
is guaranteed to be
thrown, it will be thrown.
If true
a NullPointerExceptions
is thrown if the exception that is to be
thrown is not not known to be null.
Centralizes all configuration options related to how a domain should handle situations in which the information about a value is (often) not completely available and which could lead to some kind of exception.
Basically all domains that perform some kind of abstraction should mix in this trait and query the respective method to decide if a respective exception should be thrown if it is possible that an exception may be thrown.
Usage
If you need to adapt a setting just override the respective method in your domain.
In general, the org.opalj.ai.domain.ThrowAllPotentialExceptionsConfiguration should be used as it generates all exceptions that may be thrown.