• 售前

  • 售后

热门帖子
入门百科

python用户自界说非常的实例讲解

[复制链接]
知足常乐77 显示全部楼层 发表于 2021-8-14 09:09:53 |阅读模式 打印 上一主题 下一主题
分析

1、步伐可以通过创建一个新的非常类来定名它们自己的非常。非常应该是典范的继承自Exception类,直接或间接的方式。
2、非常python有一个大基类,继承了Exception。因此,我们的定制类也必须继承Exception。
实例
  1. class ShortInputException(Exception):
  2.     def __init__(self, length, atleast):
  3.         self.length = length
  4.         self.atleast = atleast
  5. def main():
  6.     try:
  7.         s = input('请输入 --> ')
  8.         if len(s) < 3:
  9.             # raise引发一个你定义的异常
  10.             raise ShortInputException(len(s), 3)
  11.     except ShortInputException as result:#x这个变量被绑定到了错误的实例
  12.         print('ShortInputException: 输入的长度是 %d,长度至少应是 %d'% (result.length, result.atleast))
  13.     else:
  14.         print('没有异常发生')
  15. main()
复制代码
知识点扩展:
自定义非常范例
  1. #1.用户自定义异常类型,只要该类继承了Exception类即可,至于类的主题内容用户自定义,可参考官方异常类
  2. class TooLongExceptin(Exception):
  3.   "this is user's Exception for check the length of name "
  4.   def __init__(self,leng):
  5.     self.leng = leng
  6.   def __str__(self):
  7.     print("姓名长度是"+str(self.leng)+",超过长度了")
复制代码
捕捉用户手动抛出的非常
  1. #1.捕捉用户手动抛出的异常,跟捕捉系统异常方式一样
  2. def name_Test():
  3.   try:
  4.     name = input("enter your naem:")
  5.     if len(name)>4:
  6.       raise TooLongExceptin(len(name))
  7.     else :
  8.       print(name)
  9.   except TooLongExceptin,e_result: #这里异常类型是用户自定义的
  10.     print("捕捉到异常了")
  11.     print("打印异常信息:",e_result)
  12. #调用函数,执行
  13. name_Test()
  14. ==========执行结果如下:==================================================
  15. enter your naem:aaafsdf
  16. 捕捉到异常了
  17. Traceback (most recent call last):
  18. 打印异常信息: 姓名长度是7,超过长度了
  19. 姓名长度是7,超过长度了
  20. File "D:/pythoyworkspace/file_demo/Class_Demo/extion_demo.py", line 16, in name_Test
  21.   raise TooLongExceptin(len(name))
  22. __main__.TooLongExceptin: <exception str() failed>
  23. During handling of the above exception, another exception occurred:
  24. Traceback (most recent call last):
  25. File "D:/pythoyworkspace/file_demo/Class_Demo/extion_demo.py", line 26, in <module>
  26.   name_Test()
  27. File "D:/pythoyworkspace/file_demo/Class_Demo/extion_demo.py", line 22, in name_Test
  28.   print("打印异常信息:",e_result)
  29. TypeError: __str__ returned non-string (type NoneType)
复制代码
以上就是python用户自定义非常的实例讲解的详细内容,更多关于python用户怎样自定义非常的资料请关注脚本之家别的相干文章!

帖子地址: 

回复

使用道具 举报

分享
推广
火星云矿 | 预约S19Pro,享500抵1000!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

草根技术分享(草根吧)是全球知名中文IT技术交流平台,创建于2021年,包含原创博客、精品问答、职业培训、技术社区、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区。
  • 官方手机版

  • 微信公众号

  • 商务合作