Possible duplicate: why-is-java-lang-throwable-a-class
Hi! I doesn't understand why Throwable isn't abstract class. I see only one use case for these: in logging systems for figure out call hierarchy. But it can be some static method for this or other class. So, why?)
Thanks.
upd
from java.util.logging.LogRecord
// Get the stack trace.
StackTraceElement stack[] = (new Throwable()).getStackTrace();
Why it can't be Throwable.getStackTrace();
or as in java.lang.Thread
(new Exception()).getStackTrace();
In this way we can avoid throw new Throwable();
upd2 from javadoc
The Throwable class is the superclass of all errors and exceptions in the Java language.
So, as a superclass it should be abstract, imho. Using it for getting stacktrace isn't good case by this definition.