In [25]: dict_ = {'1':'yi','2':'er'} In [26]: dict_.index('1') --------------------------------------------------------------------------- AttributeError Traceback (most recent call last) <ipython-input-26-516844ad2563> in <module> ----> 1 dict_.index('1') AttributeError: 'dict' object has no attribute 'index'
7. NameErrorNameError是指变量名称发生错误,比如用户试图调用一个还未被赋值或初始化的变量时会被触发 。
In [27]: print(list_) --------------------------------------------------------------------------- NameError Traceback (most recent call last) <ipython-input-27-87ebf02ffcab> in <module> ----> 1 print(list_) NameError: name 'list_' is not defined
8. FileNotFoundErrorFileNotFoundError为打开文件错误,当用户试图以读取方式打开一个不存在的文件时引发 。
In [29]: fb = open('./list','r') --------------------------------------------------------------------------- FileNotFoundError Traceback (most recent call last) <ipython-input-29-1b65fe5400ea> in <module> ----> 1 fb = open('./list','r') FileNotFoundError: [Errno 2] No such file or directory: './list'
9. StopIterationStopIteration为迭代器错误,当访问至迭代器最后一个值时仍然继续访问,就会引发这种异常,提醒用户迭代器中已经没有值可供访问了 。
In [30]: list1 = [1,2] In [31]: list2 = iter(list1) In [33]: next(list2) Out[33]: 1 In [34]: next(list2) Out[34]: 2 In [35]: next(list2) --------------------------------------------------------------------------- StopIteration Traceback (most recent call last) <ipython-input-35-5a5a8526e73b> in <module> ----> 1 next(list2)
10. AssertionErrorAssertionError为断言错误,当用户利用断言语句检测异常时,如果断言语句检测的表达式为假,则会引发这种异常 。
In [45]: list3 = [1,2] In [46]: assert len(list3)>2 --------------------------------------------------------------------------- AssertionError Traceback (most recent call last) <ipython-input-46-ffd051e2ba94> in <module> ----> 1 assert len(list3)>2 AssertionError:
上面这些异常应该是平时编程中遇见频率比较高的一部分,完整的还是要看上文的思维导图或者查阅官方文档,当然除此之外Python也支持用户根据自己的需求自定义异常,这里就不再过多概述了 。
对于异常的处理Python也有着比较强大的功能,比如可以捕获异常,主动抛出异常等等,主要有下面几种方式:
- try ... except 结构语句捕获
- try ... except ... finally 结构语句捕获
- try ... except ... else 结构语句捕获
- raise关键字主动抛出异常
- try ... raise ... except 触发异常
- assert断言语句
- traceback模块跟踪查看异常
推荐阅读
- JQuery实现瀑布流
- Go操作Excel表格
- go语言137道面试题整理汇总
- I2C协议与EEPROM
- ADC触摸屏编程_ADC中断
- ps自拍图片制作成漂亮的手绘效果
- 前端技术框架选型,跨端框架盘点
- 最早的麦田怪圈图片 麦田怪圈是人为的
- 恒星在主星序阶段是什么 太阳目前属于赫罗图中的主序星
- 三年级作文我的爸爸200字?三年级作文我的爸爸250字?