java - Java 7 的组合/多捕获 block 是否有正式名称?

标签 java naming multi-catch

在讨论多重捕获/组合捕获 block 时 here术语“多个 catch block ”之间存在歧义,意思是 Java 7 特性:

try { .. } catch (ExceptionA | ExceptionB ex) { .. }

和“多个 catch block ”,字面意思是多个 catch block :

} catch (ExceptionA exa) { ..
} catch (ExceptionB exb) { .. }

我研究过 Java 7 功能是否有一个特定的官方名称,可以用来清楚地区分它与捕获多个异常的旧样式。然而,Oracle sources似乎没有在任何地方命名此功能,而其他一些来源(如 EclipseSO )称其为“多捕获” block 。

这个特性有官方的 Oracle 命名吗?

最佳答案

Java Language Specification section 14.20指的是 uni-catchmulti-catch 子句,这几乎是官方的。

A catch clause whose exception parameter is denoted as a single class type is called a uni-catch clause.

A catch clause whose exception parameter is denoted as a union of types is called a multi-catch clause.

当然,在 Java 7 之前,没有 multi-catch 子句,因此在引入 multi-catch 之前,术语“uni-catch”从来都不是必需的。

术语multi-catch 不同于具有多个(多个)catch 子句。

关于java - Java 7 的组合/多捕获 block 是否有正式名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30114234/

相关文章:

Java,生成选定的枚举值列表

Java在扩展类时继承接口(interface)实现的问题

c# - 以 "Does"开头的方法名称看起来不错吗?

java - 为什么 Java multi-catch 不能处理通过子类关联的类型?

java - acos 没有给出角度值?

java - 为什么我的所有 BST 遍历都按顺序返回值?

c++ - C++中变量和方法可以同名吗?

naming-conventions - "entity"和 "game object"之间有什么区别?

结合 lambda 和 multi-catch 子句时出现 Java 错误?

java - 我可以在同一个 catch 子句中捕获多个 Java 异常吗?