Throwable
has two direct subclasses, Exception
and Error
. While it's possible to create a new class that extends Throwable
directly, this is inadvisable as many applications assume only Exception
and Error
exist.
More to the point there is no practical benefit to directly subclassing Throwable
, as the resulting class is, in effect, simply a checked exception. Subclassing Exception
instead will result in the same behavior, but will more clearly convey your intent.