文档详情

《Python程序设计》课件——第9讲 异常.pptx

发布:2025-04-03约2.38千字共44页下载文档
文本预览下载声明

第9讲异常(1);学习目标;本讲要点;9.1异常概述;初学Python会遇到各种报错:

有一种错在程序执行前由语法解析工具(如PyCharm)给出提示,如右图所示。;还有一种错误是:语法正确,但在执行过程中遇到程序的内部逻辑错误,比如,试图打开一个不存在的文件去读取数据,此时也会报错。

这种程序运行过程中出现的错误称为异常。;程序运行出现异常时,若程序中没有设置异常处理功能,解释器会采用系统的默认方式处理异常,即返回异常信息、终止程序。

异常信息中通常包含异常代码所在行号、异常的类型和异常的描述信息。

;Python程序运行出错时产生的每个异常类型都对应一个类,大多数异常都继承自Exception类,Exception类又继承了异常类的基类BaseException。;1.NameError;2.IndexError;3. AttributeError;4. FileNotFoundError;9.2异常捕获语句;Python既可以直接通过try-except语句实现简单的异常捕获与处理的功能,也可以将try-except语句与else或finally子句组合实现更强大的异常捕获与处理的功能。;try:

可能出错的代码

except[异常类型[aserror]]:#将捕获到的异常对象赋error

捕获异常后的处理代码;try-except语句可以捕获与处理程序的单个、多个或全部异常。;num_one=int(input(请输入被除数:))

num_two=int(input(请输入除数:))

try:

print(结果为,num_one/num_two)

exceptZeroDivisionErroraserror:

print(出错了,原因:,error);try-except语句可以捕获与处理程序的单个、多个或全部异常。;try-except语句可以捕获与处理程序的单个、多个或全部异常。;try:

可能出错的代码

except[异常类型[aserror]]:#将捕获到的异常对象赋值error

捕获异常后的处理代码

else:

未捕获异常后的处理代码;else子句可以与try-except语句组合成try-except-else结构,若try监控的代码没有异常,程序会执行else子句后的代码。;try:

可能出错的代码

except[异常类型[aserror]]:#将捕获到的异常对象赋值error

捕获异常后的处理代码

finally:

一定执行的代码;无论try子句监控的代码是否产生异常,finally子句都会被执行

finally子句多用于预设资源的清理操作,如关闭文件、关闭网络连接;9.3抛出异常;Python程序中的异常不仅可以自动触发异常,而且还可以由开发人员使用raise和assert语句主动抛出异常。;使用raise语句可以显式地抛出异常,raise语句的语法格式如下:;raise异常类 #格式1:使用异常类名引发指定的异常

raise异常类对象 #格式2:使用异常类的对象引发指定的异常

raise #格式3:使用刚出现过的异常重新引发异常;raise异常类 #格式1:使用异常类名引发指定的异常

raise异常类对象 #格式2:使用异常类的对象引发指定的异常

raise #格式3:使用刚出现过的异常重新引发异常;raise异常类 #格式1:使用异常类名引发指定的异常

raise异常类对象 #格式2:使用异常类的对象引发指定的异常

raise #格式3:使用刚出现过的异常重新引发异常;assert语句又称为断言语句,其语法格式如下所示:;9.3.2使用assert语句抛出异常;如果程序中的异常没有被处理,默认情况下会将该异常传递到上一级,如果上一级仍然没有处理异常,那么会继续向上传递,直至异常被处理或程序崩溃。;小结;第9讲异常(2);知识回顾;本讲要点;9.4自定义异常;有时我们需要自定义异常类,以满足当前程序的需求。自定义异常的方法比较简单,只需要创建一个继承Exception类或Exception子类的类(类名一般以“Error”为结尾)即可。;classShortInputError(Exception):

自定义异常类

def__init__(self,length,atleast):

self.length=length #输入的密码长度

显示全部
相似文档