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
Exception
and its subclasses are a form ofThrowable
that indicates conditions that a reasonable application might want to catch.An
Error
is a subclass ofThrowable
that 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.