gpt4 book ai didi

python - 我在异常处理中有一个不同的异常?

转载 作者:太空宇宙 更新时间:2023-11-04 09:29:13 27 4
gpt4 key购买 nike

在最后一行中,当 i 使用别名打印消息时,它运行良好。例如

except insufficient as i :
print("exception is caught",i.msg)

但是当我这样做的时候

except insufficient :
print("exception is caught",insufficient.msg)

这是一个错误..为什么???

```class insufficient(ZeroDivisionError):
def __init__(self,arg):
self.msg=arg
balance=5000
w=int(input("enter a number"))
try:
if w>5000:
raise insufficient("balance in the account is insufficient")
balance=balance-w
print("no exception and balance is=",balance)
except insufficient :
print("exception is caught",insufficient.msg)```

错误日志:-

Traceback (most recent call last):
File "C:\Users\ahmod\AppData\Local\Programs\Python\Python37-32\hello.py", line 8, in <module>
raise insufficient("balance in the account is insufficient")
insufficient: balance in the account is insufficient

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "C:\Users\ahmod\AppData\Local\Programs\Python\Python37-32\hello.py", line 12, in <module>
print("exception is caught",insufficient.msg)
AttributeError: type object 'insufficient' has no attribute 'msg'

最佳答案

当你这样做时:

except insufficient as i:

try block 中的代码抛出的任何 Exception 都分配给变量 i 并在 中可用除了 block 。因此,如果您的 try block 抛出 insufficient 异常,那么该异常将分配给 i。因此你可以引用i.msg

但由于 msg 是类 insufficient 中的对象属性,因此 insufficient.msg 的计算结果为空。

最后:

except insufficient:

不使抛出的对象在 except block 中可用。 insufficient 这里只是一个类型标识符。所以你不能访问 msg 属性。

关于python - 我在异常处理中有一个不同的异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56316240/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com