【问题标题】:What exactly happens when you create an alias of the Exception class? [duplicate]当您创建 Exception 类的别名时究竟会发生什么? [复制]
【发布时间】:2022-11-27 20:38:17
【问题描述】:
try:
    0/0
except Exception as e:
    print(e)

上面的代码打印了 division by zero 正如人们所期望的那样。但是如果我们尝试在不创建别名的情况下打印:

try:
    0/0
except Exception:
    print(Exception)

它只是打印<class 'Exception'>。这里发生了什么? as 关键字用于创建“别名”。如果错误消息“被零除”是 Exception 类的属性,那么为什么创建别名使其等于所述属性?

是否可以在不创建别名的情况下打印错误消息?

【问题讨论】:

  • 嗯,ExceptionExceptionas e 赋值具体的变量的异常实例。
  • 有关问题第二部分的一些答案,请参阅this Q&A

标签: python exception


【解决方案1】:

Python 的 documentation 指出:

except 子句可以在异常名称后指定一个变量。该变量绑定到异常实例,该实例通常具有存储参数的 args 属性。为方便起见,内置异常类型定义海峡() 打印所有参数而不显式访问 .args。

这意味着在Exception 名称之后传递的变量具有额外的属性来显示发生的特定异常。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-23
    • 2021-06-09
    • 1970-01-01
    • 2023-04-01
    • 2017-01-01
    • 1970-01-01
    • 2015-12-25
    相关资源
    最近更新 更多