python用户自定义异常的示例分析

这篇文章主要介绍了python用户自定义异常的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

说明

1、程序可以通过创建一个新的异常类来命名它们自己的异常。异常应该是典型的继承自Exception类,直接或间接的方式。

python用户自定义异常的示例分析

2、异常python有一个大基类,继承了Exception。因此,我们的定制类也必须继承Exception。

实例

classShortInputException(Exception):
def__init__(self,length,atleast):
self.length=length
self.atleast=atleast
defmain():
try:
s=input('请输入-->')
iflen(s)<3:
#raise引发一个你定义的异常
raiseShortInputException(len(s),3)
exceptShortInputExceptionasresult:#x这个变量被绑定到了错误的实例
print('ShortInputException:输入的长度是%d,长度至少应是%d'%(result.length,result.atleast))
else:
print('没有异常发生')
main()

知识点扩展:

自定义异常类型

#1.用户自定义异常类型,只要该类继承了Exception类即可,至于类的主题内容用户自定义,可参考官方异常类
classTooLongExceptin(Exception):
"thisisuser'sExceptionforcheckthelengthofname"
def__init__(self,leng):
self.leng=leng
def__str__(self):
print("姓名长度是"+str(self.leng)+",超过长度了")

捕捉用户手动抛出的异常

#1.捕捉用户手动抛出的异常,跟捕捉系统异常方式一样
defname_Test():
try:
name=input("enteryournaem:")
iflen(name)>4:
raiseTooLongExceptin(len(name))
else:
print(name)

exceptTooLongExceptin,e_result:#这里异常类型是用户自定义的
print("捕捉到异常了")
print("打印异常信息:",e_result)

#调用函数,执行
name_Test()
==========执行结果如下:==================================================
enteryournaem:aaafsdf
捕捉到异常了
Traceback(mostrecentcalllast):
打印异常信息:姓名长度是7,超过长度了
姓名长度是7,超过长度了
File"D:/pythoyworkspace/file_demo/Class_Demo/extion_demo.py",line16,inname_Test
raiseTooLongExceptin(len(name))
__main__.TooLongExceptin:<exceptionstr()failed>

Duringhandlingoftheaboveexception,anotherexceptionoccurred:

Traceback(mostrecentcalllast):
File"D:/pythoyworkspace/file_demo/Class_Demo/extion_demo.py",line26,in<module>
name_Test()
File"D:/pythoyworkspace/file_demo/Class_Demo/extion_demo.py",line22,inname_Test
print("打印异常信息:",e_result)
TypeError:__str__returnednon-string(typeNoneType)

感谢你能够认真阅读完这篇文章,希望小编分享的“python用户自定义异常的示例分析”这篇文章对大家有帮助,同时也希望大家多多支持恰卡编程网,关注恰卡编程网行业资讯频道,更多相关知识等着你来学习!

发布于 2021-07-29 21:58:28
收藏
分享
海报
0 条评论
169
上一篇:Java字符串拼接的示例分析 下一篇:Pytorch中自动求梯度机制和Variable类的示例分析
目录

    推荐阅读

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码