【零基础学Python教案】第9章 异常处理 PPT课件.pptx
零基础Python编程从入门到实战授课教师:xxxPython
异常处理第9章
目录CONTENTS语法错误和异常01异常检测和处理02抛出异常03用户自定义异常04实战05本章小结06
语法错误和异常01
课堂导入Python编程中常见的异常有哪些呢,出现异常会给程序带来哪些危害呢?
9.1.1语法错误语法错误也称为解析错误,在使用PyCharm编写代码时,如果出现语法错误,会通过红色波浪线提示。常见语法错误?函数参数默认值顺序错误变量命名冲突符号不匹配缩进错误?中英文符号混用缺少冒号拼写错误
9.1.1语法错误例如,变量名使用数字开头,if语句后没有冒号,其如图所示。从图中可以看出,“1name=小蓝”语句由于变量名使用数字开头,所以出现错误提示。“ifage18”语句中“age”没有定义,会出现错误提示;同时由于最后缺少冒号,也会出现错误提示。此时,将鼠标放到错误提示位置,会给出错误原因或解决方法,如“应为:”。
9.1.2异常即使Python程序的语法是正确的,在运行时也有可能发生错误,这种在运行期间检测到的错误称为异常。01在某些错误出现时会自动触发内置异常02就是用户根据自己的需求设置的异常用户自定义异常
9.1.2异常内置异常原因TypeError不同类型的数据进行运算操作ZeroDivisionError除数为0NameError尝试访问一个未声明的变量IndentationError缩进错误IndexError索引超出序列的范围KeyError使用字典中不存在的键ValueError传给函数的参数类型不正确FileNotFoundError试图以只读模式打开一个不存在的文件AttributeError尝试访问未知的对象属性SyntaxError语法错误Python中常见的内置异常
9.1.2异常大多数异常不会被程序自动处理,会以异常信息的形式进行显示。例如,执行“a=2+3”语句,出现的异常信息如图所示。从图中可以看出,该语句抛出了TypeError异常,原因是不同类型的数据进行了运算操作。如果没有对该异常进行处理,程序就会使用所谓的回溯(Traceback,一种异常信息)终止执行,这些信息包括异常发生的行号、异常的名称(如TypeError)和原因等。
课堂讨论Python的语法错误和异常错误有何不同?并讨论常见的解决方法和建议。
课堂小结语法错误和异常语法错误异常
异常检测和处理02
异常检测和处理程序运行中常会遇到未预料的错误,若缺乏处理机制会导致程序崩溃。通过try-except结构捕获异常能提升代码健壮性,确保程序稳定运行。尽可能覆盖所有潜在异常类型;结合充分的测试验证容错能力。Python的异常处理机制统一采用执行-捕获-处理模式,在异常发生时跳过异常代码继续运行。
9.2.1try-except语句try:代码块1 #可能会引发异常的代码块exceptexception[ase]:代码块2 #出现异常后执行的代码块try-except语句用于捕获和处理异常,其语法格式如下:说明exception?为异常类名,[]为可选项,“ase”表示将异常类的实例对象命名为?e。如果try子句中的代码块引发异常并被except子句捕获,就执行except子句中的代码块;如果try子句中的代码块没有引发异常,就继续执行?try-except?语句后面的代码;如果引发的异常没有被except子句捕获,程序将终止运行并输出异常信息。
9.2.1try-except语句捕获除数为0的异常实例实例位置:Chapter9\example020901.py在try子句中输入被除数和除数,然后进行除法运算,并输出商;except子句捕获ZeroDivisionError异常,并输出异常信息,代码如下。try:a=float(input(请输入被除数:))b=float(input(请输入除数:))c=a/bprint(商为:,c)exceptZeroDivisionError: #捕获异常print(除数不能为0!) #若捕获异常,则输出提示语
9.2.1try-except语句代码注解运行程序,输入被除数2,除数1,结果如图所示。再次运行程序,输入被除数2,除数0。当除数为0时,程序引发ZeroDivisionError异常,此时,except子句捕获了这个异常并输出“除数不能为0!”。由于程序对异常进行了处理,所以没有出现终止运行并抛出异常的情况,运行结果如图所示。
9.2.1try-except语句也可通过异常类的实例对象直接输出异常信息。