前面的几个章节重点说明的是类相关内容,从本章开始,往后大概有4章的内容,会来说明关于异常的内容
本章重点内容:
1、为什么使用异常?
2、异常:梗概
1)默认异常处理器
2)捕获异常
3)引发异常
4)用户定义的异常
5)终止动作
以下针对重点内容展开详细的说明
1、为什么使用异常?
异常是一种控制流程的方式,可以使我们摆脱程序中任意长度的代码块,可以起到很重要的角色:
1)错误处理:这个比较容易理解,就是能快速的定位代码运行中的问题
2)事件通知:可以发出有效状态的信号,以便我们了解程序运行的进度和状况
3)特殊情况处理:应对极为罕见的情况的处理方式,省去编写多余的代码
4)终止行为:无论程序如何运行,能确保按照需要的结束操作
5)非常规控制流程:类似C语言中的goto语句,可以实现跳转
2、异常:梗概
1)默认异常处理器
其实在前面你自己编写代码中,可能已经接触过或者看到过默认的异常处理器了,超出使用范围,就会触发系统的异常,简单的代码示例如下:
以上就是一个简单的说明,只要程序有任何无法运行的问题,就会触发系统的异常处理器
2)捕获异常
有时候我们不需要系统默认的异常处理器,我们可以捕捉异常,并按照我们的需要进行说明,还是以上面代码为例来展示如下:
可以通过try语句来捕获异常,如果引发异常就会运行except分句,按照我们的需要操作,此处是打印说明
如果没有异常,就会正常的运行,如下示例:
你会发现,程序是能正常运行的,没有跳出异常信息,但是好像也没有显示内容,为什么?这里可以留一个思考题,你可以自己想一想,为什么?相关内容前面是有提到的
3)引发异常
上面说到,异常时可以通过错误问题触发的,也是可以通过手动触发异常,这个时候会用到raise语句,具体代码示例如下:
raise语句是直接可以触发异常,因为有异常,所以执行except语句
如果你直接运行raise语句,会触发系统异常,如下:
4)用户定义的异常
用户定义的异常通过类来编写,继承自一个内置异常类,通常是一个名为Exception的类,具体代码示例如下:
5)终止动作
除了上面介绍的try/except语句之外,还有 try/finally语句,finally代码块是说明不管try是否有异常都是要执行的部门,具体代码示例如下:
首先看下没有异常的情况下,会执行finally部分:
即使触发异常,也是会执行finally部分,如下:
这样就使得编程中,无论发生什么都可以要求我们一定要执行的部分进行
try/except和try/finally有不同的侧重点,两者也是可以结合起来一起使用
以上就是本章的重点内容说明,祝学习愉快,下章见!
《Python学习手册 第五版》 每章时间规划及完成进度:
2019.11.25-2019.12.01 第01章,已完成:《Python学习手册 第五版》 -第1章 问答环节
2019.12.02-2019.12.08 第02章,已完成:《Python学习手册 第五版》 -第2章 Python如何运行程序
2019.12.09-2019.12.15 第03章,已完成:《Python学习手册 第五版》 -第3章 你应如何运行Python程序
2019.12.16-2019.12.22 第04章,已完成:《Python学习手册 第五版》 -第4章 介绍Python对象类型
2019.12.23-2019.12.29 第05章,已完成:《Python学习手册 第五版》 -第5章 数值类型
2019.12.30-2020.01.05 第06章,已完成:《Python学习手册 第五版》 -第6章 动态类型
2020.01.06-2020.01.12 第07章,已完成:《Python学习手册 第五版》 -第7章 字符串基础
2020.01.12-2020.01.19 第08章,已完成:《Python学习手册 第五版》 -第8章 列表与字典
2020.01.20-2020.01.26 第09章,已完成:《Python学习手册 第五版》 -第9章 元组、文件与其他核心类型
2020.01.27-2020.02.02 第10章,已完成:《Python学习手册 第五版》 -第10章 Python语句简介
2020.02.03-2020.02.09 第11章,已完成:《Python学习手册 第五版》 -第11章 赋值、表达式和打印
2020.02.10-2020.02.16 第12章,已完成:《Python学习手册 第五版》 -第12章 if测试和语法规则
2020.02.17-2020.02.23 第13章,已完成:《Python学习手册 第五版》 -第13章 while循环和for循环
2020.02.24-2020.03.01 第14章,已完成:《Python学习手册 第五版》 -第14章 迭代和推导
2020.03.02-2020.03.08 第15章,已完成:《Python学习手册 第五版》 -第15章 文档
2020.03.09-2020.03.15 第16章,已完成:《Python学习手册 第五版》 -第16章 函数基础
2020.03.16-2020.03.22 第17章,已完成:《Python学习手册 第五版》 -第17章 作用域
2020.03.23-2020.03.29 第18章,已完成:《Python学习手册 第五版》 -第18章 参数
2020.03.30-2020.04.05 第19章,已完成:《Python学习手册 第五版》 -第19章 函数的高级话题
2020.04.06-2020.04.12 第20章,已完成:《Python学习手册 第五版》 -第20章 推导和生成
2020.04.13-2020.04.19 第21章,已完成:《Python学习手册 第五版》 -第21章 基准测试
2020.04.20-2020.04.26 第22章,已完成 :《Python学习手册 第五版》 -第22章 模块:宏伟蓝图
2020.04.27-2020.05.03 第23章,已完成:《Python学习手册 第五版》 -第23章 模块代码编写基础
2020.05.04-2020.05.10 第24章,已完成:《Python学习手册 第五版》 -第24章 模块包
2020.05.11-2020.05.17 第25章,已完成:《Python学习手册 第五版》 -第25章 高级模块话题
2020.05.18-2020.05.24 第26章,已完成:《Python学习手册 第五版》 -第26章 OOP:宏伟蓝图
2020.05.25-2020.05.31 第27章,已完成:《Python学习手册 第五版》 -第27章 类代码编写基础
2020.06.01-2020.06.07 第28章,已完成:《Python学习手册 第五版》 -第28章 一个更加实际的示例
2020.06.08-2020.06.14 第29章,已完成:《Python学习手册 第五版》 -第29章 类代码编写细节
2020.06.15-2020.06.21 第30章,已完成:《Python学习手册 第五版》 -第30章 运算符重载
2020.06.22-2020.06.28 第31章,已完成:《Python学习手册 第五版》 -第31章 类的设计
2020.06.29-2020.07.05 第32章,已完成:《Python学习手册 第五版》 -第32章 类的高级主题
2020.07.06-2020.07.12 第33章,已完成
2020.07.13-2020.07.19 第34章,未完成
2020.07.20-2020.07.26 第35章,未完成
2020.07.27-2020.08.02 第36章,未完成
2020.08.03-2020.08.09 第37章,未完成
2020.08.10-2020.08.16 第38章,未完成
2020.08.17-2020.08.23 第39章,未完成
2020.08.24-2020.08.30 第40章,未完成
2020.08.31-2020.09.06 第41章,未完成
以下链接,可以供你了解这个学习笔记的所有章节最新进度