我正在使用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)
根据我的理解,应该没有错误,并且必须打印出“ check”。但是我收到此错误 名称'b'未定义
答案 0 :(得分:2)
您面临的问题是:
只有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)
答案 1 :(得分:0)
@ 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通常比执行常规代码慢,因此,如果执行此操作,请确保不会多次重复执行。