在 Python 中捕获所有异常
Manav Narula
2023年10月10日
我们使用 try
和 except
块来处理异常。try
块包含一些可能引发异常的代码。如果引发异常,那么我们可以在 except
块中指定可以执行的替代代码。我们知道我们在 Python 中具有不同类型的异常,以针对不同的异常具有多个 except
语句。
例如,
try:
raise ValueError()
except ValueError:
print("Value Error")
except KeyError:
print("Key Error")
输出:
Value Error
但是,有时,我们可能需要一个通用的 except
块来捕获所有异常。实现这一点非常简单。如果我们在 except
块中未提及任何特定的异常,则它将捕获可能发生的任何异常。
以下代码实现了这一点。
try:
# Your
# Code
pass
except:
print("Exception Encountered")
但是,建议不要使用此方法,因为它还会捕获通常要忽略的诸如 KeyBoardInterrupt
和 SystemExit
之类的异常。
使用 Exception
类捕获 Python 中的所有异常
我们可以通过简单地捕获 Exception
类来避免上述错误。通常,所有内置的,非系统退出的异常以及用户定义的异常都是从此类派生的。
例如,
try:
# Your
# Code
pass
except Exception as e:
print("Exception Encountered")
在 Python 中使用 BaseException
类捕获所有异常
应该注意的是,即使以上方法也可以省略一些例外。我们还可以使用 BaseException
类,它位于层次结构的顶部。在某些情况下可能需要它,我们可以在下面的代码中看到它的用法。
try:
# Your
# Code
pass
except BaseException as e:
print("Exception Encountered")
在本教程中,我们讨论了一些方法,这些方法可能并不完美,但可以捕获大多数提出的异常。通常,不建议捕获所有异常,因此请谨慎选择使用的任何方法。
作者: Manav Narula
Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.
LinkedIn