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
optional 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.