python笔记--异常处理

Python异常处理

常见异常

AttributeError:属性错误,特性引用和赋值失败时会引发属性错误
NameError:试图访问的变量名不存在
SyntaxError:语法错误,代码形式错误
Exception:所有异常的基类,因为所有python异常类都是基类Exception的其中一员,异常都是从基类Exception继承的,并且都在exceptions模块中定义。
IOError:一般常见于打开不存在文件时会引发IOError错误,也可以解理为输出输入错误
KeyError:使用了映射中不存在的关键字(键)时引发的关键字错误
IndexError:索引错误,使用的索引不存在,常索引超出序列范围,什么是索引
TypeError:类型错误,内建操作或是函数应于在了错误类型的对象时会引发类型错误
ZeroDivisonError:除数为0,在用除法操作时,第二个参数为0时引发了该错误
ValueError:值错误,传给对象的参数类型不正确,像是给int()函数传入了字符串数据类型的参数。

异常处理结构

try:
    # 主代码块
    pass
except KeyError as e:
    # key异常时,执行该模块
    pass
except Exception as e:
    #捕获其他未知错误
    pass
else:
    # 主代码块执行完,执行该块
    pass
finally:
    # 无论异常与否,最终执行该块
    pass

异常处理实例

dic = {'k1':'v1'}
try:
    dic['k20']
except KeyError as e:
    print(e)

万能异常:Exception可以捕获任意异常

s1 = 'hello'
try:
    int(s1)
except Exception as e:
    print(e)

自定义异常

class yukyException(Exception):
    def __init__(self,message):
        self.message = message
    def __str__(self): 
        return self.message

try:
    raise yukyException("my exception") #主动触发异常
except yukyException as e:
    print(e)
posted @ 2018-08-17 15:54  yukinim  阅读(186)  评论(0编辑  收藏  举报