使用多个 except 语句在 try/except 块之外返回错误



我正在使用尝试,除了在美丽的汤中阻止从帖子中获取图像。 尝试块检查帖子是否有某个类,如果没有,它将继续前进。所以我在 try 块中收到此错误,该类不存在。这是代码的简化版本。

a = "check"
try:
    print(b)
except Exception as e:
    print(c)
except Exception as e:
    print(e)
except Exception as e:
    print(a)

根据我的理解,应该没有错误,必须打印出"检查"。但是我得到这个错误名称"b"未定义

您面临的问题是:
例外情况中只考虑try块!如果要捕获except块中引发的错误,则需要将它们折叠到try块本身中。

简短示例:

a = "check"
try:
    print(b)
except Exception as e:
    try:
        print(c)
    except Exception as e:
        try:
            print(e)
        except Exception as e:
            print(a)

@Scotty1- 所说的似乎是您问题的答案,但是这是另一种嵌套较少尝试的方法,除了。我打算将其作为评论发布,但它有点长,所以我把它放在这里,如果它有误,请将其删除。

为什么不做这样的事情呢?

a = 'check'
varL = ['b', 'c', 'e', 'a']
for x in varL:
    if x in locals() or x in globals():
        exec('print({})'.format(x))

请注意,exec 通常比执行普通代码慢,因此如果这样做,请确保它不会重复很多次。

最新更新