Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Intellij/Android Studio能否将多个捕获块合并为一个?_Java_Android Studio_Inheritance_Intellij Idea_Exception Handling - Fatal编程技术网

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之前,您可以执行以下操作

  • 突出显示“
    //一些有风险的东西”
  • 代码->用..->尝试/抓住

在添加一组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语句

      是。对不起,一开始我忘了提到我正在重构。是的。对不起,起初我忘了提到我正在重构。