博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
45-异常(2)
阅读量:4663 次
发布时间:2019-06-09

本文共 1172 字,大约阅读时间需要 3 分钟。

3. 自定义异常:

  • 自定义一个异常class,默认继承ExceptionError
  • raise 抛出一个自定义的异常class的对象
class PasswordException(Exception):             def __init__(self,pw,min_length):            self.password=pw            self.min_length=min_length             def __str__(self):            return "%s的密码错误,密码的最小长度为%s"%(self.password,self.min_length)         def reg(username,password):        if len(password) < 6:            raise PasswordException(password,6)#抛出你指定的异常        else:            print("用户名为:%s,密码为:%s"%(username,password))         try:        #reg("zs","1245678")        reg("zs","124")    except Exception as ex: #两个except 会按照顺序先执行第一,如果第一个满足异常类型条件,进入第一excep。不会进入后面的except。        print("第一个except")        print(ex)    except PasswordException as ex:             print("第二个exceph")             print(ex)

对异常总结一下:

  • try 放在可能会出错的代码块处,except捕捉并处理相应类型的异常,ExceptionError捕捉所有类型的异常
  • 一旦捕捉到一个异常, 立即跳转至相应类型的except,跳过顺序执行的代码段
  • 多个except会按照顺序依次捕捉相应类型的异常,但只会执行一个except就跳出当前的try---except区 (以"一个try---多个except"作为一个异常捕获区)
  • else 是当try部分没有发生异常才执行,这个else可以没有
  • 只要进入了当前这个try-except区,并且本区内写了finally,就一定会执行;当然finally也可以不写
  • 注意到:若当前没有处理异常,将会向上层抛,直至抛到ExceptionError,由解释器处理

转载于:https://www.cnblogs.com/LS1314/p/8504600.html

你可能感兴趣的文章
再回首数据结构—红黑树(一)
查看>>
界面设计规范(转)
查看>>
js与jquery混用问题
查看>>
可空类型 Nullable<T>
查看>>
python之封装
查看>>
iOS开发常用快捷键
查看>>
day3
查看>>
微信打开网页键盘弹起后页面会被顶上去,键盘收起,页面无法回到原来的位置,导致弹框里的按钮响应区域错位 position为fixed...
查看>>
没有世界末日的2012
查看>>
Check a dll is x64 or x86
查看>>
UWP 自定义控件:了解模板化控件 系列文章
查看>>
从源码看集合ArrayList
查看>>
mybatis配置多数据源(利用spring的AbstractRoutingDataSource)
查看>>
文章点击量排行TOP100-IBM power8算法挑战赛第三期
查看>>
前端常见问题
查看>>
熟悉常用的HDFS操作
查看>>
面向对象和面向过程的比较
查看>>
数据结构 树的建立与遍历
查看>>
[置顶] java swing的树操作(增删改)
查看>>
jetty对sessionId的处理分析
查看>>