我有自己的异常类继承自 Exception
类。我可以检查类型是否为 in {..my exceptions list..}
,但在我的情况下这似乎有问题。是否有任何其他方法来检查异常是用户定义的还是 Python 的内置异常。谢谢!
编辑:问题是其他人可以编写他们自己的异常或在他们的文件中重命名现有异常,我不可能跟踪这些。我需要记录内置异常,并忽略因用户错误而抛出的异常。我需要检查除了 block
try:
# something
except Exception as god_knows_what_ex:
# check if built-in
最佳答案
您可以创建自己的继承自 Exception 的自定义异常类,并让您当前的异常类继承自该异常类。
所以基本上:
Exception
- MyExceptionClass
- MyExceptionClass1
- MyExceptionClass2
- Built-in exceptions
这样,您可以检查异常是否是您的 MyExceptionClass
的实例。
然后,如果您只想知道抛出的异常是用户定义的,您可以执行以下操作:
try:
method_that_can_throw_an_exception()
except MyExceptionClass:
print('User-defined exception thrown')
关于python - 如何知道异常是Python中内置的还是用户定义的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55262562/