python - 如何知道异常是Python中内置的还是用户定义的

标签 python exception

我有自己的异常类继承自 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/

相关文章:

java - 如何在 Java 中查找潜在的未经检查的异常?

python - 在 cartopy 墨卡托投影上绘制一个圆

python - 查找满足特定条件的数字的优化方法

python - 如何通过 sqlalchemy 在多个(生成的)python 进程中使用 sqlite

c++ - 为什么异常总是在具有可破坏堆栈对象的非叶函数中产生开销?

python - 如何使用循环直到将键添加到字典中?

c++ - 在 C++ 中转换为 double 时处理异常

python - 异常子类的打印不是参数元组

python - Pandas:从特定列标题获取字符串

python - 是否可以从 python 中的字符串列表中删除所有单引号?