「Throwable」クラスを直接継承して独自の例外を作ることは推奨されますか。

通常はException(検査例外)やRuntimeException(非検査例外)を継承するのが一般的です。