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
Vor 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
Vis 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
returnsNormallyreturnstruethe methodsresultandhasResultare defined.The result of the computation. Typically a
DomainValue; if the computation is executed for its side effect (e.g., as in case of amonitorenterormonitorexitinstruction) the type ofVmaybeNothing.The exception(s) that maybe thrown by the computation. Typically, a
DomainValuewhich represents a reference value with typejava.lang.Throwableor a subtype thereof. If multiple exceptions may be thrown it may also be a set orIterableofDomainValues (e.g.,ExceptionValues).The precise requirements on the result of a computation are determined by the Domain object's methods that perform computations.