Java ';Catch分支相同';然而,仍然需要我抓住它

Java ';Catch分支相同';然而,仍然需要我抓住它,java,try-catch,Java,Try Catch,在阅读我的代码时,我注意到我的IDE列出了一条警告,并显示以下消息: 在JDK 7下的try块中报告相同的catch部分。可以使用快速修复程序将节折叠为多个捕捉节 并且还指定为JDK 7引发此警告+ try块如下所示: try { FileInputStream e = new FileInputStream("outings.ser"); ObjectInputStream inputStream = new ObjectInputStream(e); return (

在阅读我的代码时,我注意到我的IDE列出了一条警告,并显示以下消息:

在JDK 7下的try块中报告相同的catch部分。可以使用快速修复程序将节折叠为多个捕捉节

并且还指定为JDK 7引发此警告+

try块如下所示:

try {
    FileInputStream e = new FileInputStream("outings.ser");
    ObjectInputStream inputStream = new ObjectInputStream(e);
    return (ArrayList)inputStream.readObject();
} catch (FileNotFoundException var3) {
    var3.printStackTrace();
} catch (ClassNotFoundException var5) {
    var5.printStackTrace();
} catch (IOException ex){
    ex.printStackTrace();
}
但是,在移除(抛出该特定警告的捕捉块)时:

我仍然会在以下位置收到错误:

ObjectInputStream inputStream = new ObjectInputStream(e);
return (ArrayList)inputStream.readObject();


我是否遗漏了一些我至今还没有弄明白的明显的东西?

既然我在IntelliJ中看到了同样的警告(我想你也在使用IntelliJ),为什么不让Alt+Enter(或者Option+Return,如果你愿意的话)告诉你它的意思呢

如果异常分支相同,则可以折叠它们,并且使用multi-catch语法,您将得到一个catch语句,它与三个catch语句的作用相同:

try {
    FileInputStream e = new FileInputStream("outings.ser");
    ObjectInputStream inputStream = new ObjectInputStream(e);
    return (ArrayList)inputStream.readObject();
} catch (ClassNotFoundException | IOException var3) {
    var3.printStackTrace();
}
return null;

需要注意的是,多重捕获中的类型必须是不相交的+1以正确使用multi-catch语句。disjoint表示类之间不是子类/超类。提示“崩溃”实际上解决了我的警告问题。谢谢
try {
    FileInputStream e = new FileInputStream("outings.ser");
    ObjectInputStream inputStream = new ObjectInputStream(e);
    return (ArrayList)inputStream.readObject();
} catch (ClassNotFoundException | IOException var3) {
    var3.printStackTrace();
}
return null;