catch ブロックパラメーターへの代入を報告します。

catch ブロックパラメーターの変更は大きな混乱を招きやすいため、推奨されません。

このクイックフィックスは新しい変数の宣言を追加します。

例:


  void processFile(String fileName) throws Exception {
    try {
      doProcessFile(fileName);
    } catch(Exception ex) {
      if (ex instanceof UncheckedIOException) {
        // 警告: catch ブロックパラメーターが再代入されました
        ex = ((UncheckedIOException) ex).getCause();
      }
      throw ex;
    }
  }

クイックフィックス適用後:


  void processFile(String fileName) throws Exception {
    try {
      doProcessFile(fileName);
    } catch(Exception ex) {
      Exception unwrapped = ex;
      if (unwrapped instanceof UncheckedIOException) {
        unwrapped = ((UncheckedIOException)
          unwrapped).getCause();
      }
      throw unwrapped;
    }
  }