|
|
1
16
使用接口的原因是抽象出实现细节。 通过抛出这些异常,您将暴露可能应该被抽象掉的实现细节。 也许最好定义一个新的异常。然后f()的每个实现都会捕获它所知道的异常,并抛出新的异常,这样您就可以:
通过包装实现异常,您仍然将其暴露给调用方,并且在调用远程方法时,这可能会使您感到不适。在这些情况下,您需要做更多的工作以通用的方式返回有用的信息。
编辑
当我们调用f()时,我们需要如下代码:
归根结底,是什么样的异常类可以放在catch块中。
如果我们使用运行时异常,结果会大同小异,只是我们可以选择将异常处理推迟到调用方方法,甚至不考虑异常的可能性。
如果我们使用我的建议使用一个新的、包装好的异常,那么这意味着我们必须捕获
|
|
|
2
3
这似乎有点落后。您应该抛出与您的接口相关且可能特定的异常,或者根本不抛出。更改实现以包装公共异常类(尽管不是
|
|
|
3
1
你可以声明你抛出的异常
如果你使用一个像样的IDE,它会帮你纠正这个错误。我只是在方法中抛出异常,IDE给了方法子句及其接口添加选项。 |
|
|
simply lemon · python上链表的添加方法 1 年前 |
|
|
Anonymous · 为什么在这个例子中self和类名的用法不同? 1 年前 |
|
|
P N Singh · 在CPP Oops中调用对象而不创建它 1 年前 |
|
|
Muthuraj · 如何创建一个通用工厂来创建某种类型的实例[重复] 1 年前 |
|
|
Andy Votava · 从父类定义调用学生方法 1 年前 |