这节没有过多太难的、难以理解的内容。留一些全书,以后续参考。
1:python标准异常总结。
-
BaseException:所有异常的 基类
-
Exception:常规异常的 基类
-
StandardError:所有的内建标准异常的基类
-
ArithmeticError:所有数值计算异常的基类
-
FloatingPointError:浮点计算异常
-
OverflowError:数值运算超出最大限制
-
ZeroDivisionError:除数为零
-
AssertionError:断言语句(assert)失败
-
AttributeError:尝试访问未知的对象属性
-
EOFError:没有内建输入,到达EOF标记
-
EnvironmentError:操作系统异常的基类
-
IOError:输入/输出操作失败
-
OSError:操作系统产生的异常(例如打开一个不存在的文件)
-
WindowsError:系统调用失败
-
ImportError:导入模块失败的时候
-
KeyboardInterrupt:用户中断执行
-
LookupError:无效数据查询的基类
-
IndexError:索引超出序列的范围
-
KeyError:字典中查找一个不存在的关键字
-
MemoryError:内存溢出(可通过删除对象释放内存)
-
NameError:尝试访问一个不存在的变量
-
UnboundLocalError:访问未初始化的本地变量
-
ReferenceError:弱引用试图访问已经垃圾回收了的对象
-
RuntimeError:一般的运行时异常
-
NotImplementedError:尚未实现的方法
-
SyntaxError:语法错误导致的异常
-
IndentationError:缩进错误导致的异常
-
TabError:Tab和空格混用
-
SystemError:一般的解释器系统异常
-
TypeError:不同类型间的无效操作
-
ValueError:传入无效的参数
-
UnicodeError:Unicode相关的异常
-
UnicodeDecodeError:Unicode解码时的异常
-
UnicodeEncodeError:Unicode编码错误导致的异常
-
UnicodeTranslateError:Unicode转换错误导致的异常
这是所有的异常类型。
异常的层次关系:
![](https://i-blog.csdnimg.cn/blog_migrate/3e95c01336c46f5d05fce024db8b229f.png)
这些内容,知道存在,不需死记。用到时多看多看就会记住。
2:python标准警告总结。
-
Warning:警告的基类
-
DeprecationWarning:关于被弃用的特征的警告
-
FutureWarning:关于构造将来语义会有改变的警告
-
UserWarning:用户代码生成的警告
-
PendingDeprecationWarning:关于特性将会被废弃的警告
-
RuntimeWarning:可疑的运行时行为(runtime behavior)的警告
-
SyntaxWarning:可疑语法的警告
-
ImportWarning:用于在导入模块过程中触发的警告
-
UnicodeWarning:与Unicode相关的警告
-
BytesWarning:与字节或字节码相关的警告
-
ResourceWarning:与资源使用相关的警告
这是python所有的警告类型。要求同上。
3:try-except语句。
先执行try语句代码,如果没有异常,则跳过except句,此语句块执行结束。
若发生异常,且异常类型与except中的一致,则执行except后代码。若不一致,则将异常传递给上层的try。
一个try语句可配合几个except语句,实现处理不同的异常。也可在except语句后跟几个不同的异常类型,实现处理不同的异常。如:
![](https://i-blog.csdnimg.cn/blog_migrate/128a987c9dcf26da1a84904863bc94b1.png)
4. try - except - finally 语句
无论是否报错,finally后的语句都将执行。
![](https://i-blog.csdnimg.cn/blog_migrate/c09a9d17670b882fb76359d24fb0626a.png)
5:try-except-else语句
若try没有发现异常,则执行else后的语句。
![](https://i-blog.csdnimg.cn/blog_migrate/3225d2b5626fde59375270d1d932d8f3.png)
![](https://i-blog.csdnimg.cn/blog_migrate/96e2504d0ea697da2b7792af8acd918a.png)
总结:
exptct:发生指定异常后运行
else:不发生异常运行
finally:无论发生不发生都运行
6:raise语句
使用raise语句抛出一个指定的异常。
![](https://i-blog.csdnimg.cn/blog_migrate/3ebc963f5707e337e42ea640d023af94.png)
不常用,后再补充。