关于【raise 抛出异常】:如何继承基础异常类?
输出异常值本身看一下,上图这种用法是不对的,抛出的异常并非我们自定义的异常,而是:
核查了一下设计器手册:给出的说明是:
错误类型: 1、 流程执行到此之前未对 e 进行声明,raise 语句自行抛出异常前 Python 便自动触发异常,提示命名错误,变量 e 未定义; 2、流程中先声明了 e 但不是基础异常类的派生类,则执行 raise 语句时 Python 自动触发异常,提示类型错误; 3、声明了 e 是基础异常类的派生类,则执行 raise 语句抛出该异常。
重点来了:那么如何继承基础异常类?
那你就检测到异常之后,手动抛出自定义异常即可。
想要自定义异常内容 😵
不太清楚你为什么要对 e 进行赋值,如果你是想要弹出消息框,可以用别的变量去接收。
而且你这样直接设置也没用,进入异常的时候 e 已经变成了异常类实例。
如果是想声明一个自定义基类,并从该基类派生其他异常类,也不是这样用。你可以百度一下
所以需要声明 e 是基础异常类的派生类,但是俺不会啊
两个 e 的作用域都不同
我的意思是你在 try 之后直接连 raise
raise 的作用不就是抛出自己定义的异常嘛 ~
在你写的流程中,把设置变量和赋值给 e,这两个删除就是你想要的结果了,强行给 e 赋值反而画蛇添足。