|
|
1
3
验证
我不建议抓
|
|
2
1
如果你把它移到外面
|
|
|
3
0
创建自己的异常类型,但不要捕获它。
|
|
4
0
首先,让我指出你代码中的一个错误。您的方法声明它抛出异常,但它没有。它抛出svception。所以这就是“抛出”条款应该说的。(无论如何,你不应该说“抛出异常”。你应该明确说明它抛出了什么类型的异常。)剩下的答案取决于你含糊不清的描述“make network call”是否抛出了异常。 如果没有,您的方法应该如下所示:
但这是不现实的。很可能,你的“make network call”代码抛出了类似IOException的东西。在这种情况下,您的代码应该如下所示:
注意,我将捕获到的IOException包装在svception中。如果svception没有这样做,请重写它以便它可以,或者调用它
还要注意,我不费心抛出,然后捕捉并重新抛出一个IOException。当我发现失败时。我只是抛出了我需要抛出的异常。这意味着我需要在两个不同的地方记录foo消息。在大多数情况下,应该避免重复一行代码,但是对于日志记录,这是可以的。 但是这个代码有点乱。我会把成功的测试和可能的IOException分离开来。所以我会这样写:
注意这里的响应是在try循环之前声明的。它没有初始化,因为它不可能到达
|
|
|
M.Jane · 组织和编写异常类的正确方法 8 年前 |
|
|
shubham daharwal · java中的内部捕获异常 8 年前 |
|
|
Jon · 如何在不需要任何操作的情况下处理Python异常 8 年前 |
|
|
felix1415 · C++捕获(标准::异常和e)与捕获(…) 8 年前 |
|
k0pernikus · 如何在scala中键入可能引发异常的函数? 8 年前 |