java.lang.Error and its subclasses represent abnormal conditions, such as OutOfMemoryError, which should only be encountered by the Java Virtual Machine.

The following code snippet:

public class MyException extends Error { /* ... */ }       // Non-Compliant

should be refactored into:

public class MyException extends Exception { /* ... */ }   // Compliant