Java Intellij/Android Studio能否将多个捕获块合并为一个?
我必须重构像这样的东西:Java Intellij/Android Studio能否将多个捕获块合并为一个?,java,android-studio,inheritance,intellij-idea,exception-handling,Java,Android Studio,Inheritance,Intellij Idea,Exception Handling,我必须重构像这样的东西: 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是否能够将捕获块重写为: }
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 (FooException e) {
debug(e);
}
在添加一组try-catch之前,您可以执行以下操作
- 突出显示“
//一些有风险的东西”
- 代码->用..->尝试/抓住
- 突出显示“
//一些有风险的东西”
- 代码->用..->尝试/抓住
- 最好的办法是自动创建
} catch (BarException | BazException e) {
debug(e);
}
为此,您可以运行“try”语句中相同的“catch”分支”检查
(例如菜单分析->按名称运行检验)
将其更改为“FooException”会改变语义,因为无法自动证明FooException没有其他子类(毕竟Java可以动态加载新类)。
当然,您自己可能知道这一点,因此重构是有意义的。最好的办法是自动创建
} catch (BarException | BazException e) {
debug(e);
}
为此,您可以运行“try”语句中相同的“catch”分支”检查
(例如菜单分析->按名称运行检验)
将其更改为“FooException”会改变语义,因为无法自动证明FooException没有其他子类(毕竟Java可以动态加载新类)。
当然,您自己可能知道这一点,因此重构是有意义的。至少在IntelliJ Utimate 2018.2中,在运行“try”语句中相同的“catch”分支后(由“按名称运行检查”开始),在运行“try”语句中相同的“catch”分支后,您至少可以在IntelliJ Utimate 2018.2中单击“代码”折叠“catch”块按钮自动合并catch语句(由“按名称运行检查”启动),您可以单击
折叠“catch”块
按钮自动合并catch语句是。对不起,一开始我忘了提到我正在重构。是的。对不起,起初我忘了提到我正在重构。