catch
块形参的赋值。
更改 catch
块形参很容易令人困惑,不建议使用。
该快速修复会添加新变量的声明。
示例:
void processFile(String fileName) throws Exception {
try {
doProcessFile(fileName);
} catch(Exception ex) {
if (ex instanceof UncheckedIOException) {
// Warning: catch block parameter reassigned
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;
}
}