发生异常后,我可以返回执行try块吗?(目标是写得更少)例如:
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块,就无法返回。
那for循环呢?
funcs = do_smth1, do_smth2 for func in funcs: try: func() except Exception: pass # or you could use 'continue'
但是请注意,裸露裸露是不明智的做法except。您应该改为捕获特定的异常。我Exception之所以这么做,是因为在不知道方法可能会抛出什么异常的情况下,这是我所能做的。
except
Exception