选项1(我的):
try {
...
} catch (OneKindOfException) {
...
} catch (AnotherKind) {
...
} catch (AThirdKind) {
...
}
选项2(他的):
try {
...
} catch (AppException e) {
switch(e.getCode()) {
case Constants.ONE_KIND:
...
break;
case Constants.ANOTHER_KIND:
...
break;
case Constants.A_THIRD_KIND:
...
break;
default:
...
}
}
他的论点 - 在我使用大量关于用户输入验证、异常处理、断言和合同等方面的链接来支持我的观点之后 - 归结为以下内容:
“这是一个好模型。自从我和我的一个朋友在1998年提出它以来,我一直在使用它,已经将近10年了。再仔细看一下,你会发现我们为了达成学术争论而做出的妥协非常有道理。”
有人能否给出一个毋庸置疑的理由,解释为什么选项1是正确的选择?