python - 如何获取在 Python 中捕获的异常的名称?

标签 python exception

如何获取 Python 中引发的异常的名称?

例如,

try:
    foo = bar
except Exception as exception:
    name_of_exception = ???
    assert name_of_exception == 'NameError'
    print "Failed with exception [%s]" % name_of_exception

例如,我正在捕获多个(或全部)异常,并希望在错误消息中打印异常的名称。

最佳答案

这里有几种不同的方法来获取异常类的名称:

  1. 类型(异常).__name__
  2. exception.__class__.__name__
  3. exception.__class__.__qualname__

例如,

try:
    foo = bar
except Exception as exception:
    assert type(exception).__name__ == 'NameError'
    assert exception.__class__.__name__ == 'NameError'
    assert exception.__class__.__qualname__ == 'NameError'

关于python - 如何获取在 Python 中捕获的异常的名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18176602/

相关文章:

用于辅助功能应用程序的 Python GUI

Java:异常帮助 Char 和 Int

java - 处理tcp java socket项目中的异常

java - 使用 JDBC 连接 MySQL 时出现 SQL 语法错误,提示该表不存在。 (但表存在))

python - 在单行中打印不带括号的列表

Python argparse 可选参数仅在输入正确位置时才有效

python - 字典 - 缩小一个值并打印属于它的键 - Python

python - 应用于 pandas 数据框中的两列时出现 Difflib 错误

java - try-catch 语句出错

entity-framework - DDD : Adding entity to repository and handlig exceptions