2016-07-08 9 views
0

連鎖例外は、根本的な原因の知識が有用な場合に役立ちます。 Throwable getCause()メソッドは、現在の例外の基礎となる例外を返します。連鎖例外とPrintStackTrace

一方、catchブロックでPrintStackTrace()を呼び出すと、ログ全体がロガーファイル(およびEclipseコンソール)に出力されます。詳細なログには、発生した例外とその例外の連鎖が表示されます。

したがって、両方の用途の主な違いは何ですか?

+0

スタックトレースを使用して、問題を見つけるための出発点を与えます。私はそれを見つけることができない場合、私は例外を使用して詳細を印刷します。そして、それでも何が間違っているのか分からない – MNM

答えて

0

1つのアプローチは、デバッグ情報(PrintStackTrace)を提供することです。もう1つのアプローチは、実際のフロー制御(Throwable.getCause())です。

(通常は)根本的な原因は実装の詳細とみなされるため、フロー制御に使用しないでください。主要な例外に必要な情報を追加するか、例外のために複数の型を作成します。