11

在这里讨论多捕获/组合捕获块时,术语“多捕获块”之间存在歧义,这意味着 Java 7 功能:

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

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

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

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

这个特性在任何地方都有官方的、Oracle 给定的名称吗?

4

1 回答 1

14

Java 语言规范第 14.20 节提到了uni-catchmulti-catch子句,这几乎是官方的。

将异常参数表示为单个类类型的 catch 子句称为uni-catch子句。

将异常参数表示为类型联合的 catch 子句称为multi-catch子句。

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

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

于 2015-05-08T01:21:53.160 回答