我必须重构这样的事情:
class BarException extends FooException
class BazException extends FooException
try {
// Some risky stuff
} catch (BarException e) {
debug(e);
} catch (BazException e) {
debug(e);
}
Intellij或Android Studio是否能够将catch块重写为:
} catch (FooException e) {
debug(e);
}
答案 0 :(得分:2)
最好的IDEA可以做的是自动创建
} catch (BarException | BazException e) {
debug(e);
}
要做到这一点,你可以进行检查"相同的' catch'分支机构尝试'语句"
(例如菜单分析 - >按名称运行检查)。
将其更改为" FooException"更改语义,因为无法自动证明没有其他FooException子类(在所有Java都可以动态加载新类之后)。 当然,你自己可能知道,所以重构是有道理的。
答案 1 :(得分:0)
在添加try catch之前,你可以做
//Some risky stuff
' 答案 2 :(得分:0)
至少在IntelliJ Utimate 2018.2中,运行检查Identical 'catch' branches in 'try' statement
(以“按名称运行检查”开始)之后,可以单击Collapse 'catch' blocks
按钮自动合并catch语句