Python:如何忽略exception并继续?

我有一个尝试…除了在我的代码块和当一个exception抛出。 我真的只想继续使用代码,因为在这种情况下,一切仍然能够正常运行。 问题是,如果你把except:block留空或者用#do什么也不做,它会给你一个语法错误。 我不能使用继续,因为它不在一个循环。 有一个关键字我可以使用,告诉代码只是继续前进?

except: pass 

Python中的标准“nop”是pass语句:

 try: do_something() except Exception: pass 

由于Python中最后抛出的exception被记住,exception抛出语句中涉及的一些对象被无限期地保存(实际上,直到下一个exception)。 如果这对你很重要,并且(通常)你不需要记住上次抛出的exception,那么你可能想要做下面的事情来代替pass

 try: do_something() except Exception: sys.exc_clear() 

这将清除最后抛出的exception。

在Python 3.4中有一个新的方法来实现这个function:

 from contextlib import suppress with suppress(Exception): # your code 

这是添加它的提交: http : //hg.python.org/cpython/rev/406b47c64480

下面是作者Raymond Hettinger谈论这个以及各种其他Python热点(相关位在43:30): http : //www.youtube.com/watch?v = OSGv2VnC0go

如果你想模仿bare关键字,并且忽略KeyboardInterrupt类的东西 – 虽然你通常不会 – 你可以使用with suppress(BaseException)

编辑:看起来像ignored ,在3.4版本之前被重新命名为suppress

尝试这个:

 try: blah() except: pass