We recently had a problem with a Java server application where the application was throwing Errors which were not caught because Error is a separate subclass of Throwable an
From the Java API documentation:
The class
Exceptionand its subclasses are a form ofThrowablethat indicates conditions that a reasonable application might want to catch.An
Erroris a subclass ofThrowablethat indicates serious problems that a reasonable application should not try to catch.
Errors usually are low-level (eg., raised by the virtual machine) and should not be caught by the application since reasonable continuation might not be possible.