嵌套try/catch语句不好吗?
我现在的情况是:
try:
try:
condition
catch
try:
condition
catch
catch
major failure
这样写代码不好吗?会不会显得太杂乱,或者这样做有什么影响呢?
2 个回答
3
不,这种情况还是比较常见的(不过这里用的关键词是 except
,而不是 catch
)。这要看你需要做什么以及设计的方式。
不过,有一点确实不好,我看到的太多了,就是捕获顶层的 Exception
类,而不是更具体的错误类型(比如说 KeyError)。或者是抛出同样的错误。
2
我不会直接下结论说“这不好”,因为有时候你可能真的需要它。Python 有时候故意抛出异常,而不是让你去询问(这是否...?)[这就是 EAFP 的理念],在某些情况下,嵌套使用 try/catch
是有用的——当这样做符合代码的逻辑流程时。
不过我猜大多数时候你并不需要这样做。所以在你的情况下,问一个更好的问题就是给出一个具体的例子,说明你认为在什么情况下需要这样的代码。