An Error is a subclass of Throwable that indicates serious problems that a reasonable application should not try to catch. Most such errors are abnormal conditions.
A method is not required to declare in its throws clause any subclasses of Error that might be thrown during the execution of the method but not caught, since these errors are abnormal conditions that should never occur.
That is, Error and its subclasses are regarded as unchecked exceptions for the purposes of compile-time checking of exceptions.
Common Error Classes
Thrown to indicate that an assertion has failed.
Signals that an unexpected exception has occurred in a static initializer.
Thrown when a stack overflow occurs because an application recurses too deeply.
Thrown when the Java Virtual Machine cannot allocate an object because it is out of memory, and no more memory could be made available by the garbage collector.
Full List of Error Classes