在此语言级别不支持多捕获

2022-09-05 00:22:51

所以我想输入一个数字,然后输入一个人的名字或其他东西。这没有问题,但是为什么我不能在1个块中放置2个错误异常?

while (true) {
    try {
        int id = Integer.parseInt( reader.readLine() );
        String name = reader.readLine();

        if (name.equals("")) {
            break;
        }

        map.put(name, id);
    } catch (NumberFormatException | IOException e) {
        break;
    }
}

当我尝试打印我的值时,我得到NumberFormatException

for (Map.Entry<Integer, String> pair: map.entrySet()) {
    int id = pair.getKey();
    String name = pair.getValue();
    System.out.println(id + " " + name);
}

答案 1

问题不在于代码,而在于编译器级别。只需检查 IDE 设置并将编译器级别设置为 1.7 或更高版本即可。


答案 2

如果您使用的是 IntelliJ,并在以下路径中将其正确设置为 7.0,但仍然不起作用:

文件 -> 项目结构 -> 项目设置 -> 项目 -> 项目语言级别

在模块中设置:

文件 -> 项目结构 -> 项目设置 -> 模块 -> 项目语言级别


推荐