如何正确忽略 Python 中的异常?
可以通过以下代码实现
try: x,y =7,0 z = x/y except: pass
或
try: x,y =7,0 z = x/y except Exception: pass
这些代码绕过了 try 语句中的异常,忽略了 except 子句,并且不会引发任何异常。
以上代码的区别在于,第一个也会捕获直接从 exceptions.BaseException 派生的 KeyboardInterrupt、SystemExit 等,而不是 exceptions.Exception。
众所周知,最后一个抛出的异常在 Python 中被记住,一些涉及异常抛出语句的对象将保留到下一个异常出现之前。我们可能想要执行以下操作,而不是仅仅传递
try: x,y =7,0 z = x/y except Exception: sys.exc_clear()
这将清除最后抛出的异常
广告