trait RecordAllThrownExceptions extends RecordThrownExceptions
Records all exceptions thrown by a method. I.e., for each instruction that throws an exception (or multiple exceptions) all exceptions are recorded.
- Self Type
- RecordAllThrownExceptions with ValuesDomain with Configuration with ExceptionsFactory
- Source
- RecordAllThrownExceptions.scala
- Note
This domain requires that
,DomainValue
s that represent thrown exceptions have meaningfulequals
andhashCode
methods. (Depending on the purpose of the abstract interpretation, reference equality may be sufficient.)This domain is only effective if the calculation of joins is fast. Otherwise it can significantly hamper overall performance!
- Alphabetic
- By Inheritance
- RecordAllThrownExceptions
- RecordThrownExceptions
- ReturnInstructionsDomain
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Type Members
- type ThrownException = Set[(RecordAllThrownExceptions.this)#ExceptionValue]
This type determines in which way thrown exceptions are recorded.
This type determines in which way thrown exceptions are recorded.
For example, if you want to collect all thrown exceptions, then the type of
ThrownException
could beSet[ThrownException]
.- Definition Classes
- RecordAllThrownExceptions → RecordThrownExceptions
- See also
The implementation of org.opalj.ai.domain.RecordAllThrownExceptions.
The implementation of org.opalj.ai.domain.RecordLastReturnedValues. It follows the same pattern.
Abstract Value Members
- abstract def areturn(pc: Int, value: (RecordAllThrownExceptions.this)#DomainValue): Computation[Nothing, (RecordAllThrownExceptions.this)#ExceptionValue]
The given
value
, which is a value with computational type reference, is returned by the return instruction with the givenpc
.The given
value
, which is a value with computational type reference, is returned by the return instruction with the givenpc
.- Definition Classes
- ReturnInstructionsDomain
- abstract def dreturn(pc: Int, value: (RecordAllThrownExceptions.this)#DomainValue): Computation[Nothing, (RecordAllThrownExceptions.this)#ExceptionValue]
The given
value
, which is a value with computational type double, is returned by the return instruction with the givenpc
.The given
value
, which is a value with computational type double, is returned by the return instruction with the givenpc
.- Definition Classes
- ReturnInstructionsDomain
- abstract def freturn(pc: Int, value: (RecordAllThrownExceptions.this)#DomainValue): Computation[Nothing, (RecordAllThrownExceptions.this)#ExceptionValue]
The given
value
, which is a value with computational type float, is returned by the return instruction with the givenpc
.The given
value
, which is a value with computational type float, is returned by the return instruction with the givenpc
.- Definition Classes
- ReturnInstructionsDomain
- abstract def ireturn(pc: Int, value: (RecordAllThrownExceptions.this)#DomainValue): Computation[Nothing, (RecordAllThrownExceptions.this)#ExceptionValue]
The given
value
, which is a value with computational type integer, is returned by the return instruction with the givenpc
.The given
value
, which is a value with computational type integer, is returned by the return instruction with the givenpc
.- Definition Classes
- ReturnInstructionsDomain
- abstract def lreturn(pc: Int, value: (RecordAllThrownExceptions.this)#DomainValue): Computation[Nothing, (RecordAllThrownExceptions.this)#ExceptionValue]
The given
value
, which is a value with computational type long, is returned by the return instruction with the givenpc
.The given
value
, which is a value with computational type long, is returned by the return instruction with the givenpc
.- Definition Classes
- ReturnInstructionsDomain
- abstract def returnVoid(pc: Int): Computation[Nothing, (RecordAllThrownExceptions.this)#ExceptionValue]
Called when a return instruction with the given
pc
is reached.Called when a return instruction with the given
pc
is reached. In other words, when the method returns normally.- Definition Classes
- ReturnInstructionsDomain
Concrete Value Members
- def abruptMethodExecution(pc: Int, exception: (RecordAllThrownExceptions.this)#ExceptionValue): Unit
Called by the abstract interpreter when an exception is thrown that is not (guaranteed to be) handled within the same method.
Called by the abstract interpreter when an exception is thrown that is not (guaranteed to be) handled within the same method.
- Definition Classes
- RecordThrownExceptions → ReturnInstructionsDomain
- Note
If the original exception value is
null
(/*E.g.*/throw null;
), then the exception that is actually thrown is a newNullPointerException
. This situation is, however, completely handled by OPAL and the exception value is hence nevernull
.
- def allThrownExceptions: LongMap[(RecordAllThrownExceptions.this)#ThrownException]
Returns all thrown exceptions.
Returns all thrown exceptions. The key of the returned map is the pc of the instruction which threw the exception.
- Definition Classes
- RecordThrownExceptions