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中。

 

 

 

posted @ 2017-09-12 16:11  xiaogao2700c  阅读(243)  评论(0编辑  收藏  举报