Not exactly. Error and its subclasses are intended to flag runtime conditions
that are beyond the programmer's control; a hardware fault, for example.
You should extend and use Error for these unrecoverable, program crashing
problems. The compiler does not check these.
Throwable.Exception.Runtime exceptions can often be pogrammer controlled
but do not arise until the program runs; NullPointerException for example.
Though it would be helpful, the compiler does not check these either. It can't
because they appear only at runtime.
Jim ...

...