如何在Python中正确地忽略异常?
这可以通过以下代码实现:
try:
x,y = 7,0
z = x / y
except:
pass
或者:
try:
x,y = 7,0
z = x / y
except Exception:
pass
这些代码绕过了 try 语句中的异常,忽略了 except 子句,不会引发任何异常。
上述代码的区别在于第一个代码示例还会捕获 KeyboardInterrupt,SystemExit等,它们直接派生自 exceptions.BaseException,而不是 exceptions.Exception。
众所周知,在Python中,最后引发的异常将会被记住,异常语句中涉及的某些对象会一直保持活动状态,直到下一个异常。因此,我们可能需要做如下处理,而不仅是简单地使用 pass:
try:
x,y = 7,0
z = x / y
except Exception:
sys.exc_clear()
这将清除最后引发的异常。