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)