例如
try:
foo()
bar()
except:
pass
Run Code Online (Sandbox Code Playgroud)
当foo函数引发异常时,如何跳到下一行(bar)并执行它?
就拿bar()出的try块:
try:
foo()
except:
pass
bar()
Run Code Online (Sandbox Code Playgroud)
顺便说一下,请注意全能except条款.更喜欢有选择地捕获您知道可以处理/忽略的异常.
如果您只有两个函数 foo() bar(),请检查其他解决方案。如果您需要运行很多行,请尝试类似以下示例的操作:
def foo():
raise Exception('foo_message')
def bar():
print'bar is ok'
def foobar():
raise Exception('foobar_message')
functions_to_run = [
foo,
bar,
foobar,
]
for f in functions_to_run:
try:
f()
except Exception as e:
print '[Warning] in [{}]: [{}]'.format(f.__name__,e)
Run Code Online (Sandbox Code Playgroud)
结果:
[Warning] in [foo]: [foo_message]
bar is ok
[Warning] in [foobar]: [foobar_message]
Run Code Online (Sandbox Code Playgroud)
如果调用bar是在try-block 内,则无法完成.您必须将调用置于try-except块之外,或使用else:
try:
foo()
except:
pass
else:
bar()
Run Code Online (Sandbox Code Playgroud)
如果bar也可能抛出异常,则必须使用单独的try块bar.
| 归档时间: |
|
| 查看次数: |
4395 次 |
| 最近记录: |