首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >我在异常处理中有一个异常,这是不同的?

我在异常处理中有一个异常,这是不同的?
EN

Stack Overflow用户
提问于 2019-05-27 02:20:29
回答 1查看 41关注 0票数 1

在使用别名打印i消息的最后一行中,.for示例运行得很好

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

但是当我这么做的时候

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

这是一个错误,..why?

```class insufficient(ZeroDivisionError):
def __init__(self,arg):
        self.msg=arg

balance=5000

W=int(input(“输入数字”))

尝试:

if w>5000:
    raise insufficient("balance in the account is insufficient")
balance=balance-w
print("no exception and balance is=",balance)

除了不足:

print("exception is caught",insufficient.msg)```
Error Log:- 

```javascript

回溯(最近一次调用):

文件"C:\Users\ahmod\AppData\Local\Programs\Python\Python37-32\hello.py",第8行,在

raise insufficient("balance in the account is insufficient")

不足:账户余额不足

在处理上述异常的过程中,发生了另一个异常:

回溯(最近一次调用):

文件"C:\Users\ahmod\AppData\Local\Programs\Python\Python37-32\hello.py",第12行,在

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

AttributeError:类型对象“”不足“”没有属性“”msg“”

EN

回答 1

Stack Overflow用户

发布于 2019-05-27 02:31:15

当你这样做的时候:

except insufficient as i:

try块中的代码抛出的任何Exception都被赋值给变量i,并在except块中可用。因此,如果你的try代码块抛出了一个insufficient异常,那么这个异常就会被分配给i。因此,您可以参考i.msg

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

最后:

except insufficient:

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

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56316240

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档