比如 A 方法调用 B 方法,什么情况 B 要捕获异常自己处理,什么情况要抛给 A 去处理呢?我理解如果异常的产生和 A 调用传入的参数等无关,是 B 本身的问题,就要 B 自己处理,反之要抛给 A 。不知道理解的对不对?
比如 A 方法调用 B 方法,什么情况 B 要捕获异常自己处理,什么情况要抛给 A 去处理呢?我理解如果异常的产生和 A 调用传入的参数等无关,是 B 本身的问题,就要 B 自己处理,反之要抛给 A 。不知道理解的对不对?
|
yumenaweiMay 7, 2021
1
如果 b 觉得 a 需要关注这个异常就抛给 a,如果 b 觉得 a 不需要关注就自己吃了就行。
|
|
JoooooooooMay 7, 2021
3
好问题, 也是一个好的面试题.
|
|
yumenaweiMay 7, 2021
4
@zhoudaiyu #2 比如说,读取文件,文件名是合法的,但是文件不存在,就抛一个 FileNotFoundException,告诉调用者我不能正确的处理,是因为文件不存在,你看看这个问题怎么处理下。
有一些允许调用超时的场景,就会将超时的异常给吞掉,不返回给调用者。 |
|
rioshikelong121May 7, 2021
5
我的理解是能处理的自己处理 处理不了的往上扔。
|
|
7
@rioshikelong121 #5 这个思路好,下层尽可能处理,处理不了的扔回去,只要能分清哪些能处理哪些处理不了就可以了,确实是这个思路,感谢感谢
|
|
evilStartMay 7, 2021 via Android
8
我的思路是对于调用者来说,这个错误会不会产生预期之外的结果,如果不会的话自己处理,如果会的话能往上扔的就往上扔,不要隐藏错误自己处理
|
|
9
@evilStart #8 结合了一下 5 楼的思路,大概就是自己能处理的自己尽量处理,但是不要吞掉一些本身不是被调用方的异常。感谢
|
|
10
@Jooooooooo #3 是不是比问 茴香豆的茴有多少写法好
|