内容正文:
课程名称
第13章 异常
计划学时
2学时
内容分析
本章主要介绍异常概述、捕获与处理异常、触发异常、自定义异常、回溯最后的异常、小案例
教学目标
与
教学要求
要求学生理解异常的概念、掌握异常的处理、掌握触发异常、掌握自定义异常
教学重点
捕获与处理异常、触发异常、自定义异常、回溯最后的异常
教学难点
捕获与处理异常、触发异常、自定义异常、回溯最后的异常
教学方式
课堂讲解及ppt演示
教
学
过
程
第一课时
(异常概述、捕获与处理异常)
异常概述
· 异常的概念
在生活中,使用计算机中的某个应用软件时,由于某种错误,可能会引发异常,如图13.1所示。
图13.1 程序异常
在程序中,当Python检测到一个错误时,解释器就会指出当前流程已无法继续执行下去,这时就出现了异常。例如,使用print()函数输出一个未定义的变量值,具体如下所示:
print(name)
在Python程序中,如果出现异常,而异常对象并未被捕获或处理,程序就会用自动的回溯,返回一种错误信息,并终止执行,上述语句返回的错误信息如下:
Traceback (most recent call last):
File "D:/1000phone/test.py", line 1, in <module>
print(name)
NameError: name 'name' is not defined
上述信息提示name变量名未定义,NameError为Python的内建异常类。异常是指因为程序出错而在正常控制流以外采取的行为,即异常是一个事件,该事件可能会在程序执行过程中发生并影响程序的正常执行。
· 异常类
Python为了区分不同的异常,其中内置了许多异常类,常见的异常类如表13.1所示。
表13.1 常见的异常类
异常类名称
基类
说明
BaseException
object
所有异常类的直接或间接基类
Exception
BaseException
所有非退出异常的基类
SystemExit
BaseException
程序请求退出时抛出的异常
KeyboardInterrupt
BaseException
用户中断执行(通常是输入Ctrl+C)时抛出
GeneratorExit
BaseException
生成器发生异常,通知退出
ArithmeticError
Exception
所有数值计算错误的基类
FloatingPointError
ArithmeticError
浮点运算错误
OverflowError
ArithmeticError
数值运算超出最大限制
ZeroDivisionError
ArithmeticError
除零导致的异常
AssertionError
Exception
断言语句失败
AttributeError
Exception
对象没有这个属性
EOFError
Exception
读取超过文件结尾
OSError
Exception
I/O相关错误的基类
ImportError
Exception
导入模块/对象失败
LookupError
Exception
查找错误的基类
IndexError
LookupError
序列中没有此索引
KeyError
LookupError
映射中没有这个键
MemoryError
Exception
内存溢出错误
NameError
Exception
未声明、未初始化对象
UnboundLocalError
NameError
访问未初始化的本地变量
ReferenceError
Exception
弱引用试图访问已经垃圾回收了的对象
RuntimeError
Exception
一般的运行时错误
NotImplementedError
RuntimeError
尚未实现的方法
SyntaxError
Exception
语法错误
IndentationError
SyntaxError
缩进错误
TabError
IndentationError
Tab 和空格混用
SystemError
Exception
一般的解释器系统错误
TypeError
Exception
对类型无效的操作
ValueError
Exception
传入无效的参数
Warning
Exception
警告的基类
RuntimeWarning
Warning
可疑的运行时行为警告基类
SyntaxWarning
Warning
可疑的语