The exception or exceptions when the computation raised an exception;
defined if and only if throwsException
returns true
.
The exception or exceptions when the computation raised an exception;
defined if and only if throwsException
returns true
.
E.g., the invocation of a method may lead to several (checked/unchecked) exceptions.
Returns true
if this computation has a result value, false
otherwise.
Returns true
if this computation has a result value, false
otherwise.
A method with return type void
may return normally (returnsNormally),
but will never have a result. I.e., for such method, hasResult
will always
be false.
The return value of the computation (if any); defined if and only if
hasResult
returns true.
The return value of the computation (if any); defined if and only if
hasResult
returns true.
Returns true
if this computation may have returned normally without
throwing an exception.
Returns true
if this computation may have returned normally without
throwing an exception. Given that some computations are performed for their
side effect only, the computation may not have a result.
Returns true
if this computation may have raised an exception.
Updates the exception associated with the represented computation.
Updates the exception associated with the represented computation.
This method is only supported if the computation had an associated exception!
Updates the result associated with the represented computation.
Updates the result associated with the represented computation.
This method is only supported if the computation had a result!
Encapsulates the result of a computation in a domain. In general, the result is either some value
V
or some exception(s)E
. In some cases, however, when the domain cannot precisely determine the result, it may be both: some exceptional value(s) and a value.In the latter case the abstract interpreter will generally follow all possible paths. A computation that declares to return a result (i.e., the type
V
is notNothing
) must not return a result and/or throw an exception if the computation did not finish.Querying Computations
Before accessing a computation's result (result or exceptions) it first has to be checked whether the computation returned normally (returnsNormally) or threw an exception (throwsException). Only if
returnsNormally
returnstrue
the methodsresult
andhasResult
are defined.The result of the computation. Typically a
DomainValue
; if the computation is executed for its side effect (e.g., as in case of amonitorenter
ormonitorexit
instruction) the type ofV
maybeNothing
.The exception(s) that maybe thrown by the computation. Typically, a
DomainValue
which represents a reference value with typejava.lang.Throwable
or a subtype thereof. If multiple exceptions may be thrown it may also be a set orIterable
ofDomainValue
s (e.g.,ExceptionValues
).The precise requirements on the result of a computation are determined by the Domain object's methods that perform computations.