例外のコンストラクターも Throwable cause 引数を取っている Throwable.initCause() の呼び出しを報告します。

このような場合は initCause() の呼び出しを除去し、その引数を例外のコンストラクターの呼び出しに追加できます。

例:


  try {
      process();
  }
  catch (RuntimeException ex) {
    RuntimeException wrapper = new RuntimeException("Error while processing");
    wrapper.initCause(ex); // 'Throwable.initCause()' の不要な呼び出し
    throw wrapper;
  }

コンストラクターにイベント引数を渡すためのクイックフィックスを使用できます。 クイックフィックス適用後:


  try {
      process();
  }
  catch (RuntimeException ex) {
    RuntimeException wrapper = new RuntimeException("Error while processing", ex);
    throw wrapper;
  }