python学习手册(第4版) 第三十三章 异常编码细节

1.再次回顾程序结构

程序由模块组成,模块中包含了语句块,语句块中包含了表达式,表达式创建并处理对象。

 

2.try复合语句

以try作为首行,然后是一个或多个except分句来识别要捕获的异常,最后是一个可选的else分句(如果出现else分句,至少要有一个except分句)。

python学习手册(第4版) 第三十三章 异常编码细节

 

3.try语句分句形式

python学习手册(第4版) 第三十三章 异常编码细节

 

4.Exception异常

捕获一个Exception异常几乎与一个空的except具有相同的效果,但是忽略和系统退出相关的异常。

 

5.raise手动触发异常

三种使用方法,

raise <instance>                    #使用实例

raise <class>                         #使用类,隐式的创建实例

raise                                       #不包含异常名称或额外数据值时,重新引发当前异常,如下图,

python学习手册(第4版) 第三十三章 异常编码细节

 

6.assert条件触发异常

python学习手册(第4版) 第三十三章 异常编码细节

 

7.with/as处理异常

python学习手册(第4版) 第三十三章 异常编码细节

对open的调用,会返回一个简单文件对象,赋值给变量名myfile,然后文件迭代器会在for循环内读取myfile。

此对象支持with所使用的环境管理协议,即在with语句执行完成后,环境管理机制保证由myfile所引用的文件对象会自动关闭,即使在处理该文件时,for循环引发了异常也是如此。

尽管文件对象在垃圾回收时会自动关闭,然而并不总是能够知道这何时发生,with语句允许我们在一个特定语句块执行完毕后会发生关闭。

所以,上图代码与下面这张图的效果是一致的,

python学习手册(第4版) 第三十三章 异常编码细节

with语句的设计,是为了让必须在程序代码块周围发生的启动和终止活动一定发生。