异常基础

来源:互联网 发布:面板数据多重共线性 编辑:程序博客网 时间:2024/05/18 00:28
#-*-coding:utf-8-*-'''Created on 2015年11月22日@author: Zroad'''"""一、异常的用途1、错误处理,若忽略已发生的异常,默认处理是停止程序,打印出错信息。2、事件通知3、特殊情况处理:处理罕见的情况,省去编写应对特殊情况的代码4、终止行为:try/finally语句可确保一定会进行需要的结束运算。5、非常规控制流程:"""#二、默认的异常处理及捕获异常处理:def fetcher(obj,index):    return obj[index]x  = "spam""""默认异常处理:程序终止,打印出错信息IndexError: string index out of range"""#fetcher(x,4)"""捕获异常:1、try语句块中发生异常语句后的程序不会执行2、跳转执行捕获异常的程序代码3、异常捕获后,主程序恢复执行,运行 print "Program Restore!"运行结果:IndexError got!"""try:    fetcher(x,4)    print "Execute here!"except IndexError:    print "IndexError got!"print "Program restore! "#三、主动引发异常:raise/asserttry:    raise IndexError  #使用raise语句主动引发异常,若未捕获则向上抛出异常except IndexError:    print "IndexError got!""""关于assert引发异常:1、assert引发异常:是一个有条件的raise2、条件判断为False则引发异常 "AssertionError: Nobody catch the exception!"条件判断为True则不引发3、assert引发异常后,后面的程序不运行"""flag = 1assert flag == 1,"Nobody catch the exception!"print "AssertinError restore!"#四、用户自定义异常:class Bad(Exception):    passdef doomed():    raise Bad()  #也可以是raise Bad,raise后面是Exception类或是实例try:    doomed()except Bad:    print "Bad Exception got!"#五、终止行为:"""try:      。。。。except a:  .....except b:  .....finally:  ....finally语句总会被执行"""def after():    try:        fetcher(x,4)    finally:        print "after fetcher"after()print "after function execute!" #该语句不会运行
0 0
原创粉丝点击