无法抓住这起案件的加薪

时间:2018-04-03 17:01:22

标签: python exception

我在Python中有一个re-triable包装类,可以帮助其他 func 重试。我们假设我的班级名为 Wrapper 。这是我的粗略实现(不是真正的代码):

Wrapper:
  while True:
    try:
       func()
    except Exception as e:
       pass
    num_retry--
    if num_try == 0
       raise

当我使用包装器时,我会这样做:

try:
  // use Wrapper
except Exception as e:
  // handle exception

但是我发现除了部分没有捕获异常,为什么?关于raise有什么特别的Python吗?

1 个答案:

答案 0 :(得分:0)

原因是因为您之前已表示已将pass句子忽略为Wrapper而忽略了该例外。然后异常将不会到达第一个try,因为它将被忽略。

将删除的捕获移除到Wrapper,然后只让捕获到外面。但正确的是你应该将异常捕获到Wrapper而不是在他之外。