NameError
尝试访问一个没有声明的变量
IndexError
索引超出数列的范围
IndentationError
缩进错误
ValueError
传入值错误
KeyError
请求一个不存在的字典关键字
IOError
输入输出错误
ImportError
当import语句无法找到模块或from 无法在模块中找到相应的名称
AttributeError
尝试访问未知的对象属性引发的错误
TypeError
类型不合适
MemoryError
内存不足
ZeroDivisionError
除数为9 引发的错误
异常处理语句
1.try ...except...
在使用时,将可能产生异常的的代码放在try 语句中,把处理结果放在 except 语句中,这样,当try 后面的代码
发生错误时就会执行 except 中的代码。如果 try 后的代码没有异常,则不会执行except后的代码。
2.try...except...else..
该语句在except 之后加了一个else 语句,用于指定当try 语句没有发现异常时需要执行的代码,如果try 语句中发现了
异常,则不在执行else 之后的代码。
3.try...except...finally..
无论try 语句中是否发现异常,都会执行finally 之后的代码。
4.raise
如果某个函数可能产生异常,但不想在当前的函数中处理该异常,则可以使用raise 语句在函数中抛出异常,
raise [exceptionName[(reason)]]
其中,exceptionName[(reason)]为可选参数,用于指定抛出的异常名称及异常信息的描述,如果省略则把异常原样抛出。
程序测试
1.使用IDE 调试
基本上所有的IDE 都具有代码调试功能,如Python自带的IDLE 和 pycharm 等等。一般都是在出现异常的地方设置断点,然
后在此查看数据的值是否正确。
2.使用assert 语句调试
该语句一般用于对程序在某个时刻必须满足的条件进行验证
assert expression[reason]
其中,expression 是一个条件表达式,如果为假则抛出AsserError 异常,反之则什么都不用做。reason 为可选参数,用于描述
前面的expression,为了更好的知道哪里出现了错误。