【发布时间】:2016-02-19 21:19:25
【问题描述】:
在 Java™ 教程的 Advantages of Exceptions 部分:
一个方法可以避开其中抛出的任何异常,从而允许调用堆栈更远的方法捕获它。
[...]
...回避异常需要中间人方法方面的一些努力。任何可以在方法中抛出的检查异常都必须在其
throws子句中指定。
这里的“鸭子异常”是什么意思?我搜索了网络和 FOLDOC(免费在线计算词典),但没有找到任何看起来很有希望的东西。
【问题讨论】:
-
从教程中显示的伪代码中,我会说这意味着不要在方法本身中捕获异常,而是忽略它(如果发生检查异常,请将其添加到
throws子句) 以便它可以被调用堆栈中更靠前的方法捕获 -
"duck" 在这种情况下意味着将异常转发给调用者。
-
好吧... DUCK 的意思是低下头以避免被击中或被看到。为了使您的方法不被异常击中,您可以通过在方法上声明
throws异常来进一步将其扔到调用堆栈中 -
这些关于鸭子的问题是怎么回事?
标签: java exception terminology