python中的异常
每个异常都是一些类的实例,而实例可以被引发
2015年8月9日
21:14
使用raise语句可以引发异常 ,raise语句的一般格式为:raise Exception([value])
exception:异常类型,value:是一个指定异常相关细节的可选值。
exception:所有类的基类。
attributeError::特性引用 或赋值失败时发生。
IOerror:试图打开不存在文件时引发。
INDEXerror: 在使用序列中不存在的索引时引发。
keyerror:在使用映射中不存在的键时引发。
syntax:在代码为错误形式时引发。
自定义异常类: 如何创建自己的异常类?只要确保从exception类中继承。
例:class somecustom(exception)
定义新异常:要创建新异常,就定义父类为exception的新类
Class network(exception): pass
可用如下方式通过raise语句使用这个新异常:
Raise NetworkError("can't find host"),用于引发一个异常。
为了捕捉异常并且做出一些处理,可以这样调用重写程序
Try:
Exception 。只是个错误处理器。
Try:
X=
Y=
Except ZeroDivisionError
print(" ") 在这里输出 错误。
出现异常时,解释器将停止执行try代码块中的语句,并寻找可匹配该异常的except子句。如果找到,控制权就会传递给except子句中的第一条语句。执行完except子句后,控制权就会传递给出现在try-except代码块后的第一条语句。
raise [exception[,data]]
在Python中,要想引发异常,最简单的形式就是输入关键字raise,后跟要引发的异常的名称。异常名称标识出具体的类:Python异常是那些类的对象。执行raise语句时,Python会创建指定的异常类的一个对象。raise语句还可指定对异常对象进行初始化的参数。为此,请在异常类的名称后添加一个逗号以及指定的参数(或者由参数构成的一个元组)。
例:
try:
raise MyError #自己抛出一个异常
except MyError:
print 'a error'
raise ValueError,’invalid argument’
捕捉到的内容为:
type = VauleError
message = invalid argument
>
若要用一个块来捕捉多个类型异常,那么需要在except中将它们作为元组列出
except(1,2,3)
最后finally子句。它可用来在可能的异常后进行清理,它和try子句联合使用。
finally子句和try子句联合使用但是和except语句不同,finally不管try子句内部是否有异常发生,都会执行finally子句内的代码。所有一般情况下,finally自己常常用于关闭文件或者在Socket中。