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

本文深入探讨了程序异常处理机制,包括try、except、else、raise等语句的使用,以及assert断言和with/as语句在资源管理中的应用。通过实例讲解如何有效捕获和触发异常,确保代码的健壮性和资源的正确释放。

1.再次回顾程序结构

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

 

2.try复合语句

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

 

3.try语句分句形式

 

4.Exception异常

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

 

5.raise手动触发异常

三种使用方法,

raise <instance>                    #使用实例

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

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

 

6.assert条件触发异常

 

7.with/as处理异常

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

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

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值