Python基础学习简记--异常处理(Day11)

Python基础学习简记–异常处理(Day11)

python程序在运行时发生的被程序检测到的各种错误信息,我们称为异常。
异常发生的原因有很多种,本次我们简单学习python的标准异常和两种处理异常的方法。

1、标准异常

  1. AssertionError 当 assert 语句失败时将被引发。
  2. AttributeError 当属性引用 (参见 属性引用) 或赋值失败时将被引发。
  3. EOFError 当 input() 函数未读取任何数据即达到文件结束条件 (EOF) 时将被引发。
  4. FloatingPointError 目前未被使用。
  5. ImportError 当 import 语句尝试加载模块遇到麻烦时将被引发。 并且当 from … import 中的 “from list” 存在无法找到的名称时也会被引发。
  6. IndexError 当序列抽取超出范围时将被引发。
  7. KeyError 当在现有键集合中找不到指定的映射(字典)键时将被引发。
  8. MemoryError 当一个操作耗尽内存但情况仍可(通过删除一些对象)进行挽救时将被引发。
  9. NameError 当某个局部或全局名称未找到时将被引发。
  10. OSError 此异常在一个系统函数返回系统相关的错误时将被引发。
  11. OverflowError 当算术运算的结果大到无法表示时将被引发。
  12. SyntaxError 当解析器遇到语法错误时将被引发。
  13. TypeError 当一个操作或函数被应用于类型不适当的对象时将被引发。
  14. ValueError 当操作或函数接收到具有正确类型但值不适合的参数,并且情况不能用更精确的异常例如 IndexError 来描述时将被引发。
  15. ZeroDivisionError 当除法或取余运算的第二个参数为零时将被引发。

下图是截自官方文档的异常层级:
Python基础学习简记--异常处理(Day11)_第1张图片

2、try except else finally语句

使用try except 语句,捕获程序中可能发生的异常

trypass
except ValueError:  #捕获具体的异常
	pass
except TypeError:
	pass
except ...:
	pass
else:
	pass
finally:  #finally的内容无论前面发生什么异常,最后一定会执行
	pass

3、raise

我们可以使用raise语句自己触发异常

raise TypeError
#Traceback (most recent call last):
#  File "D:/mldlcode/leetcode/123.py", line 330, in 
#    raise TypeError
#TypeError

4、assert

Python assert(断言)用于判断一个表达式,在表达式条件为 false 的时候触发异常。

assert 1==2
#Traceback (most recent call last):
#  File "D:/mldlcode/leetcode/123.py", line 330, in 
#    assert 1==2
#AssertionError

5、参考文献

https://docs.python.org/zh-cn/3.7/library/exceptions.html
https://blog.csdn.net/LSGO_MYP/article/details/102807018

你可能感兴趣的:(python)