码迷,mamicode.com
首页 > 编程语言 > 详细

python 异常处理

时间:2018-10-14 17:51:21      阅读:151      评论:0      收藏:0      [点我收藏+]

标签:bsp   microsoft   语法   自定义异常   turn   中断   防止   nal   htm   

异常处理:处理可预见的错误,防止程序中断。

name=[‘刚田武‘,‘朱二娃‘]
data={}
try:
    print(name[1])
    #print(data[‘pgtwo‘])
except KeyError as e:
    print(‘key 错了‘,e)
except IndexError as e:
    print(‘索引出错‘,e)
except Exception as e:      #放在所有except的最后,当不知道错误类型时执行
    print(‘未知错误‘,e)
else:                       #没有错误时执行
    print(‘一切正常‘)
finally:
    print(‘无论有没有错误都会执行。‘)

 也可以这样写except块:

except (KeyError,IndexError) as e:
    print(‘key 错误或者索引错误‘,e)

 把多个异常类型写在一起,节省代码,但是出现异常时不能分辨出是哪一种。

因为难以穷举错误类型,所以在结尾处写except Exception as e用来捕获大部分错误。缩进错误、语法错误会导致程序不能继续解释下去,无法捕获。

在python2.x中语法如下:

except Error_type,e:    #用逗号,不用as
    code

 


自定义异常:[http://www.cnblogs.com/wupeiqi/articles/5017742.html]

 

class MyException(Exception):
    def __init__(self, msg):
        self.message = msg
    def __str__(self):      #定义直接调用类时的返回值。基类Exception中已经有此方法,这里可以不写或者重构
        return self.message     #此处返回值如果不是self.message,则程序最终打印的就不是“自定义异常”
try:
    raise MyException(‘自定义异常‘)
except MyException as e:
    print(e)        #直接调用类时,类返回值由__str__()方法确定

 

python 异常处理

标签:bsp   microsoft   语法   自定义异常   turn   中断   防止   nal   htm   

原文地址:https://www.cnblogs.com/zhhy236400/p/9786922.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!