在讨论多重捕获/组合捕获块here时,术语“多捕获块”之间含糊不清,意味着Java 7特性:
try { .. } catch (ExceptionA | ExceptionB ex) { .. }
和“多个catch块”,意思是字面上的多个catch块:
} catch (ExceptionA exa) { ..
} catch (ExceptionB exb) { .. }
我已经研究过,看看Java 7功能是否有一个特定的官方名称,可以用它来清楚地区分它与捕获多个异常的旧版本。但是,Oracle sources似乎没有在任何地方命名此功能,而其他一些来源(如Eclipse和SO)将其称为“多捕获”块。
这个功能在任何地方都有正式的,Oracle给出的名称吗?
答案 0 :(得分:13)
Java Language Specification section 14.20指的是 uni-catch 和 multi-catch 条款,这些条款与官方条款相同。
将其例外参数表示为单个类类型的catch子句称为 uni-catch 子句。
一个catch子句,其exception参数表示为类型的并集,称为 multi-catch 子句。
当然,在Java 7之前没有多捕获条款,所以术语" uni-catch"在引入多捕获之前,我们从来没有必要。
术语 multi-catch 与拥有多个(多个,多个)catch子句不同。