异常发生后能否返回执行try
block ?
例如:
try:
do_smth1()
except:
pass
try:
do_smth2()
except:
pass
对比
try:
do_smth1()
do_smth2()
except:
??? # magic word to proceed to do_smth2() if there was exception in do_smth1
最佳答案
不,你不能那样做。这就是 Python 的语法。一旦你因为异常退出了 try-block,就没有办法再进去了。
那么 for 循环呢?
funcs = do_smth1, do_smth2
for func in funcs:
try:
func()
except Exception:
pass # or you could use 'continue'
但是请注意,只有 except
被认为是一种不好的做法。您应该改为捕获特定异常。我为 Exception
捕获,因为在不知道方法可能抛出什么异常的情况下,我可以做到这一点。
关于python - 捕获异常并继续 Python 中的 try block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19522990/