Handling runtime errors
EPL eliminates many runtime errors because of the following:
Strict, static typing, so there are no class cast exceptions.
No implicit type conversion so there are no number format exceptions.
Values can only be
null (or
empty as it is called in EPL) if they are explicitly declared as
optional, and can be accessed safely without risk of null pointer exceptions. See the description of the
optional type in the
API Reference for EPL (ApamaDoc) and
The ifpresent statement for more information.
However, EPL cannot entirely eliminate runtime errors. For example, you receive a runtime error if you try to divide by zero or specify an array index that is out of bounds. Some runtime errors are obscure. For example:
mySeq.remove(mySeq.indexOf("foo"));
If foo is not in mySeq, indexOf() returns –1, which causes a runtime error.