Errors in java are the abnormal conditions that occurs in a program. Error in java is a subclass of the Throwable class that describes the serious problems that a reasonable application should not try to catch. Most of the errors in java are abnormal conditions while the error ThreadDeath is a "normal" condition. It is also a subclass of Error class as most of the applications should not try to catch it. You must not declare a method in the throws clause any subclass of the Error class that might be thrown during the execution of the method but not caught.
Recommend the tutorial