getCause
まあわざわざ残すこともない気はするけど、結構良く使うので。
最初に発生したエラーの取得。
リフレクションなんか使ってると、呼び出したメソッドの中でエラーが起きると呼び出した側ではInvocationTargetExceptionだか何だかというエラーになる。
エラー処理の仕方にもよるけど、Exception#getMessage()をログに出力するだけなんていうプロジェクトはよくある。
一部分だけスタックトレースを出力するなんてわがままは通らない。
でもInvocationTargetExceptionのメッセージなんてログに出力したって何の意味もないので、最初に発生したエラーのgetMessage()を呼び出すようになった。
public static Throwable getCause(Throwable t) { while (t.getCause() != null) { t = t.getCause(); } return t; }