下面的代码有两个tryexcept块。如果里面的代码失败了,就会引发一个异常,但之后还是会继续下一段代码。是否可以一进入except块就从所有块中脱离出来?
try:
try:
print(a)
except:
print('Inner')
# should break from here and exit the script
print(k)
except Exception as e:
print('Outer')
上面的代码打印的是 Inner
但会因为没有定义 k
也是。该。Outer
不应该也被打印出来。
我想你是想知道 try
...except
与可选的 else
包括的条款。
try:
try:
print(a)
except:
print('Inner')
else:
print(k)
except Exception as e:
print('Outer')
这将打印 Inner
如果 a
没有定义,将打印 Outer
如果 a
定义为
这将避免打印出外部异常->。
try:
try:
print(a)
except:
print('Inner')
try:
print(k)
except:
print('Inner for k')
except Exception as e:
print('Outer')
你可以使用一个函数来避免剩余的命令
def printvars():
try:
try:
print(a)
except:
print('Inner')
return
try:
print(k)
except:
print('Inner for k')
except Exception as e:
print('Outer')
我会避免使用万能的异常,这会导致很多意想不到的结果。