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;
}
}