《Python学习手册 第五版》 -第35章 异常对象

异常作为一个对象,是可以通过类来进行管理的,本章重点说明异常类

本章重点内容

1、内置异常类

2、定制的打印显示

3、定制的数据和行为

接下来展开说明

1、内置异常类

Python能够引发的所有内置异常都是预定义的类对象

BaseException:顶层根,打印和构造函数默认值

  这是一场的顶级根父类,这个类不应由用户定义的类直接继承,它提供了子类可继承的默认打印和状态保持行为

Exception:用户定义异常的根

  与应用相关的异常的顶层根父类,它是BaseException类的一个直接子类,并且是除系统退出事件类外,所有其他内置异常的父类,几乎全部的用户定义类都应该继承自这个类而不是BaseException

ArithmeticError:数值错误的根

  Exception的子类,所有数值错误的父类,它的子类识别具体的数值错误,OverflowError、ZeroDivisionError以及Floating PointError

LookupError:索引错误的根

  Exception的子类,序列和映射索引错误,以及一些Unicode查找错误的父类类别

内置异常集合内容有很多,而且经常容易修改,所以最新详细的内容还是要查看官网的说明

内置类树可以让你决定处理器具体或通用的程度,如何理解?就是说,因为内置异常类都是通过继承产生,有层次,可以根据不同的需要情况选择不同的层次,最经典的一个说明就是关于Exceptiong类,前面我们有讲过,如下代码在运行中是可以捕捉到所有异常,如下:

try:

  statements

except:

  statements

但是在实际运行中,我们会出现系统异常,这个时候,我们想忽略掉,只关注代码自身运行的异常,就可以通过Exception类来实现,如下:

try:

  statements

except Exception

  statements

这样就可以解决我们的问题了,可以通过不同层次的类来筛选我们想要的内容

内置异常类有默认打印和状态,具体代码查看:

 这是在JupyterLab中的默认打印,不同的平台默认的打印可能有所不同

对于异常类,可以接受参数,一般情况下,接受的参数也会在默认打印中显示,如下

 2、定制的打印显示

我们了解了异常类,也看过了异常类的默认打印,那在实际的编码中,我们可以根据自己的需要,定制打印显示

通过重载方法__repr__或__str__来实现定制的打印显示,具体代码如下:

 3、定制的数据和行为

可以通过定义自己的构造函数来实现定制的数据和行为

可以提供更多的异常细节,也就是更能准确的知道异常在哪,具体代码示例如下:

 可以提供异常方法,也就是说在异常发生的时候,调用相应的方法,常见比较多的就是把异常信息记录到文件中的方法,具体代码示例如下:

 代码运行后,会在同个文件夹下面创建一个新的txt文件,打开查看如下:

以上就是本章的重点内容说明,祝学习愉快,下章见!

《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章,已完成:《Python学习手册 第五版》 -第33章 异常基础

2020.07.13-2020.07.19 第34章,已完成:《Python学习手册 第五版》 -第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章,未完成

以下链接,可以供你了解这个学习笔记的所有章节最新进度

自学笔记系列:《Python学习手册 第五版》 -写在开始之前

原文地址:https://www.cnblogs.com/zhangjiyou/p/13122384.html