Python:如何忽略异常并继续?

这个问题在这里已经有了答案:

  • 如何正确地忽略异常? 10个答案

  • except:
        pass
    

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

    try:
        do_something()
    except Exception:
        pass
    

    由于Python中会记住最后抛出的异常,因此抛出异常的语句中涉及的一些对象将无限期地保持活动状态(实际上,直到下一个异常为止)。 如果这对你很重要,并且(通常)不需要记住上次抛出的异常,则可能需要执行以下操作而不是pass

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

    这会清除最后抛出的异常。


    有一种新的方法可以在Python 3.4中实现:

    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

    如果你想效仿裸except关键字,也忽略之类的东西KeyboardInterrupt -虽然你平时不-你可以用with suppress(BaseException)

    编辑:看起来好像ignored ,在3.4发布之前重新命名为suppress

    链接地址: http://www.djcxy.com/p/25867.html

    上一篇: Python: How to ignore an exception and proceed?

    下一篇: How to catch all exceptions at class level in CSharp?