python实用教程 第九章 异常处理
教案-python异常处理

(1)总结Python中常见的异常种类、try-except语句的基本结构和用法以及异常处理的最佳实践和注意事项。通过提问和讨论的方式,引导学生回顾本节课的重点知识点,加深对异常处理的理解。
板书或PPT提纲计划
1.Python中常见的异常种类及其含义
2.raise和assert语句的基本结构和用法
教学思政点
通过学习Python中的异常处理,引导学生认识到编写健壮、可靠的代码在软件开发中的重要性。同时,教育学生遵循良好的编程习惯,培养其严谨、细致的编程思维,使其能够编写更加健壮和可靠的代码。此外,可以强调在编程中应具备问题解决能力和团队协作精神,为未来的学习和工作打下坚实的基础。
教学准备
备课方式:集体备课[]独立备课[✔]
其 它:
教
学
过
程
设
计
一、复习回顾上节课讲解的内容
二、进行重点知识的讲解
(1)教师根据课件,向学生介绍异常处理的重要性以及Python中常见的异常处理机制。通过实例代码的演示,让学生更好地理解异常的基本概念和处理方式。同时,强调异常处理在提高代码质量和可靠性中的重要性,引导学生思考如何在实际应用中正确使用异常处理机制。
(2)教师根据课件,向学生讲解raise和assert语句的基本结构和用法,以及它们在异常处理中的应用场景。通过实例代码的演示,让学生更好地掌握这两种语句的使用方法。同时,引导学生思考如何在实际应用中选择使用合适的异常处理方式,以提高代码的健壮性和可维护性。
(3)总结本课所学知识点,强调异常处理在Python编程中的重要性和应用价值。同时,展望未来的发展,鼓励学生在掌握基本概念和实现方法的基础上,继续深入学习和应用异常处理技术。同时,引导学生思考如何在实际应用中将异常处理与其他编程概念结合起来,提高代码的质量和可靠性。同时,强调积极解决问题的态度和团队合作精神在编程中的重要性。
Python语言PPT-第9章异常

有一点一定要注意:try语句检测范围一旦出现了异常,剩下的其它语句将 不会被执行。如上例中,程序运行到try语句块的第一条语句“int('det')”的时 候检测到异常,程序立即跳转到except执行异常处理程序,其它程序代码块 就不再执行了。
*** 实验
*** 利用try-except处理除数为零的异常 *** 自定义异常的使用 *** raise关键字的使用 *** 内置异常处理语句的使用
第九章 异常
大数据应用人才培养系列教自定义异常 9.4 实验 9.5 小结 9.6 习题
*** 小结
第九章 异常
在Python当中,若程序在运行时出错,系统会自动地在出错的地方生成一个 异常对象,而后系统会在出错的地方向后寻找是否有对这个异常对象处理的 代码,如果没有,系统会将这个异常对象抛给其调用函数,这样层层抛出, 如果在程序主函数中仍然没有对这个异常对象处理的代码,系统会将整个程 序终止,并将错误的信息输出。
高校大数据与人工智能
微信号:data_AI
手机APP推荐
我的PM2.5
随时随地准确 查看身边的 PM2.5值
同声译
支持26种语言 互译的实时翻 译软件
我的南京
云创大数据为路 况大数据应用提 供技术支持
科技头条
汇聚前沿资讯 的科技情报站
网站推荐
万物云 智能硬件大数据免费托管平台
环境云 环境大数据开放共享平台
另外,如果要对多个异常进行统一的处理,采用如下的语法格式:
*** 异常概述
第九章 异常
*** 处理异常 try:
[语句块] except (Exception1,Exception2,Exception3,…):
Python大学教程ppt课件

例(例如,上例中的e),以获取存储在异常实例中的数据(例如,付 款金额e.bill),这只需要在异常类型后以逗号分隔并放置一个实例名即 可。
异常的捕获
• 当异常发生时,就需要捕获并处理相应的异常。try...except语句是捕获
处理异常的常用语句之一,其语法如下:
自定义异常
• Python如同很多高级程序设计语言一样允许用户自定义异常类型,用于
描述Python异常体系中没有涉及的异常情况。通过前面的学习,可知除 3个系统级异常外,其他异常类型均是Exception子类;而定义一个自定 义异常也十分简单,只需要定义一个继承了Exception类的派生类即可。 Python不会自动为用户抛出或处理任何自定义异常,因而用户需要使用 raise语句在合理的场合手工触发异常。
自定义异常
• Python如同很多高级程序设计语言一样允许用户自定义异常类型,用于
描述Python异常体系中没有涉及的异常情况。通过前面的学习,可知除 3个系统级异常外,其他异常类型均是Exception子类;而定义一个自定 义异常也十分简单,只需要定义一个继承了Exception类的派生类即可。 Python不会自动为用户抛出或处理任何自定义异常,因而用户需要使用 raise语句在合理的场合手工触发异常。
异常的抛出
• 程序在运行过程中出现错误而无法正常运行时,会陷入异常。此外,
Python也为用户提供了raise关键字以人为地抛出指定类型的异常。
• 使用raise语句手动抛出异常在程序调试、自定义异常等场景下有诸多应
用。注意,Python不会自动引发自定义异常,这要求程序开发者为自定 义的异常编写合理的异常抛出代码 。
项目9 异常处理.-习题答案

习题答案一、选择题1.以下保留字不用于异常处理逻辑的是( A)A.ifB.elseC.tryD.finally2.以下关于Python语言中try语句的描述中,错误是(B)A. 当执行try代码块触发异常后,会执行except后面的语句B. try用来捕捉执行代码发生的异常,处理异常后能够回到异常处继续执行C. try代码块不触发异常时,不会执行except后面的语句D. 一个try代码块可以对应多个处理异常的except代码块3.哪一个类是所有异常类的父类( C)。
A. TypeErrorB. ErrorC. ExceptionD. BaseException4. 在Python异常处理机制中,(C)子句的代码是无论是否有异常都要执行。
A. IfB. elseC. finallyD. Except5.在完整的异常语句中,语句出现的顺序正确的是(D)A.try->except->finally->elseB.try->else->finally->exceptC.try->finally->else->exceptD.try->except->else->finally二、编程题1. 编写程序通过raise引发一个ZeroDivisionError异常,捕获后输出“捕获到ZeroDivisionError”。
参考答案:try:raise ZeroDivisionErrorexcept ZeroDivisionError:print("捕获到ZeroDivisionError")2.编写程序,按照用户输入的边长计算正方形的面积,若边长为负值则抛出异常(正方形的面积公式:S=a*a)参考答案:def get_width():width = int(input("请输入正方形边长:"))assert width>=0 ,"输入的边长不符合规范"return widthdef cal_area():width = get_width()return width*widthdef show_are():try:print("执行show_area()方法")square_area = cal_area()print(f"正方形的面积是:{square_area}")print("正方形面积计算完成")except Exception as err:print(f"捕获到异常:{err}")show_are()3.编写程序实现对学生的Python课程期末成绩进行等级评定,大于等于90分的为“优秀”,80分到90分的(包括80分)的为“良好”,60分到80分的(包括60分)为“合格”,60分以下为“不合格”,最有把学生成绩打印出来。
Python教程之----第9章-Python的异常PPT课件

✎ 异常类
7. AttributeError 当尝试访问未知对象属性时,会引发AttributeError异 常
Traceback (most recent call last): File "D:/PythonCode/Chapter09/异常.py", line 6, in <module>
print() AttributeError: 'Car' object has no attribute 'name’
✎ 过渡页
01 异常简介 02 异常类 0033 异异常常处处理理 04 抛出异常 05 自定义异常 06 with和as环境安装器
✎ 捕获简单异常
try-except语句定义了监控异常的一
段代码,并提供了处理异常的机制。
try: # 语句块
except: # 异常处理代码
✎ 捕获多个异常
处理多个异常的try-except语句格式如下:
try: # 语句块
except 异常名称1: # 异常处理代码1
except异常名称2: # 异常处理代码 …
✎ 捕获异常的描述信息
当出现多种异常时,为了区分不同的错误信息,可以 使用as获取系统反馈的信息。
✎ 异常类
2. ZeroDivisionError 当除数为零的时候,会引发ZeroDivisionError异常。
Traceback (most recent call last): File "D:/PythonCode/Chapter09/异常.py", line 1, in <module>
第九章异常处理及程序调试

例9-1:传统处理程序出错及Python处理 异常比较
• 编写函数getRatios(v1, v2)。 • 假定参数v1、v2是等长的数字列表,要求
返回一个列表,该列表包含v1[i]/v2[i] 有意义的值。
使用传统程序设计方法处理错误:
调用及执行:
使用Python异常处理机制实现:
执行:
对比之下,传统处理错误方法的缺点显而易见:
例9-7:自定义异常
执行结果:
5、assert语句的使用
• assert语句用于检测某个条件表达式是否 为真。
• assert语句又称为断言语句,即assert 认为检测的表达式永远为真。
• if语句中的条件判断都可以使用assert语 句检测。例如,检测某个元组中元素的个 数是否大于1,如果assert语言断言失败 ,会引发AssertionError异常。
• 程序难读,因此难以维护和修改 • 效率较低
二、异常的处理
1、try…except的使用 • try…except语句用于处理问题语句,捕
获可能出现的异常。
• try子句中的代码块放置可能出现异常的语 句,except子句中的代码块处理异常。当 异常出现时,Python会自动生成1个异常 对象,该对象包括异常的具体信息,以及 异常的种类和错误位置。
例如:试图打开不存在的文件
• 说明:出现了FileNotFoundError异常
例9-2:使用try…except捕获 FileNotFoundError异常
执行结果:
又如:
• 同样可以使用try…except语句来处理该异常。 try…except语句后还可以添加1个else子句, 当try子句中的代码发生异常时,程序直接跳转 到except子句;反之,程序将执行else子句。
Python第九章

第九章 Python异常处理与 文件操作
• 重点回顾
处理Python异常 异常的引发 Finally的使用 文件的操作
在Python中,要想实现让某种情况下引发某种 自定义的异常这个功能,可以使用raise语句实现。
三、Finally的使用
1、什么是try…finally语句 2、try…finally使用实例
三、Finally的使用
1、什么是try…finally语句
当一段程序,出现异常的时候,就不会继续执 行下去了。但是有时候,我们希望,不管某段程 序发没发生异常,都得执行某些操作的时候,我 们就可以使用try…finally语句实现。
2、try…finally使用实例
四、文件的操作
1、什么是文件的操作 2、Python中文件操作实例
四、文件的操作
1、什么是文件的操作
使用Python程序直接自动操作某文件。对文件 进行操作的类型主要有:创建文件、打开文件、 关闭文件、将指定内容写入文件、读取文件、关 闭文件等。
2、Python中文件操作实例
1、什么是异常的引发
当某些程序出现某个异常的时候,执行时会自 动将该异常类型和异常发生的位置打印处来,这 些错误的类型是系统已经定义好的,除了系统自 定义异常外,我们也可以自己规定异常。所以异 常的引发有自动引发与自定义引发两种,自定义 引发可以使用raise来引发。
二、异常的引发
2、Python中异常引发的实现
一、处理Python异常
2、Python异常的处理
假如我们在编程的时候,知道某些语句可能会 导致某种错误的发生,而我们想在编程的时候就 把发生的这种错误解决掉,这个时候,我们可以
用except语句对可能出错的部分进行处理。
Pyhton实用教程 第9章 异常

9.1 为什么要使用异常
异常会让我们从一个流程中跳出来,可以处理例外,让反应回到正轨。
举例:工业制氨,氨的工业制备是通过氮气和氢气在高温高压加催化剂的条件下完成的。倘若这三个条 件有一个不满足,化学反应就不会顺利进行。若是不能快速排除异常,只能放弃此次制备,这会导致很 大的损失。
finally语句也称为终止行为或是清理语句,一ut("please input something : ") finally:
分析:
print("finally") print("The last one")
输出1: please input something : dd
语句finally表示无论try代码块中发生了什么,一定会在最后时执行收尾 The experiment has been finished and return the equipment.
的代码。就像程序模拟的实验,不管程序有什么意外最后总会实验结 束,归还器材
PAGE 8
9.6 finally语句
练习:
1. 列出异常的几个优点。 2. 如何从异常中恢复你的程序。 3. 列出触发异常的几种方式。
PAGE 10
text = input("please input something : ")
EOFError: EOF when reading a line
finally
PAGE 9
9.7 总结
异常是一种比较高级的控制流设备,它可能是由Python引发,也可能是你自己的程序引发,在 编程时要先分析并选取异常条件。我们在这里介绍的内容是比较基础的,要求大家熟练应用异常 机制。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• >>> try:
•
raise NameError('This is NameError')
• except NameError:
•
print('An exception happened!') #后面不加raise
•
• An exception happened! #若不加raise,输出对应字符就结束
• 异常是Python的对象,表示一个错误。当Python脚本发生异常时, 需要捕获并处理所有异常,否则程序会终止执行。就如乘坐过山 车,有任何让过山车在运行过程中停下的异常因素都需要排除, 否则难以保证乘客的安全。
• 在Python中,异常属于类的实例,这些实例可以被引用,并且可 以用很多种方法进行捕捉,使得异常可以用一些友好的方式进行 化解,而不是简单粗暴的让整个程序停止。
• def exp_exception(x,y): • try: • a=x/y • print('a=', a) • return a • except Exception: • print('程序出现异常,异常信息:被除数为0') • • exp_exception(2, 0)
• 程序在执行过程中,try语句块中的语句在执行时发生异常,程序最后 执行的是except子句。因为如果语句正常,应该输出“a=”的形式, 但实际输出的是except子句中的打印语句的内容。
9.2 异常化解
• 出了异常怎么办呢?
• 就如乘坐的异常过山车,当在运行过程中停止时,乘客可以通过 自己的才智让过山车运行起来。
• 程序也一样,作为程序开发人员,谁都不想让自己写出来的代码 有问题,但这几乎是不可能的。好在编写程序的前辈们经过不断 积累与思考,创造了不少好方法处理程序中的异常, Python中, 异常最简单的化解方式是使用try语句。
• 在程序执行过程中,如果没有将异常化解,异常就会被“传播”到调 用的函数中。如果在调用的函数中依然没有化解异常,异常就会继续 “传播”,直到程序的最顶层。
• 在实际应用中,经常会遇到需要处理多个异常的情况,对于多个异常 该怎么化解呢?
• Python支持在一个try/except语句中处理多个异常,语法格式如下:
果try子句执行没有发生异常,忽略except子句,try子句执行后结 束;如果在执行try子句的过程中发生异常,try子句余下的部分就 会被忽略;如果异常的类型和except之后的名称相符,对应的 except子句就会被执行,最后执行try语句之后的代码。如果抛出 的异常没有与任何except匹配,那这个异常就会传递到上层的try 语句中。一个try语句可能包含多个except子句,分别处理不同的 异常,但最多只有一个分支会被执行。 • 处理程序只针对对应try子句中的异常进行处理,而不会处理其他 异常语句中的异常。
时,经常会遇到程序执行报错的问题,使程序不能得到预期结果, 如NameError、SyntaxError、TypeError、ValueError等,这些都是异 常。 • 这节我们会专门介绍异常。
• 异常是一个事件,该事件会在程序执行过程中发生,影响程序的 正常执行。一般情况下,在Python无法正常处理程序时就会发生 异常。
9.3 抛出异常
• Python使用raise语句抛出一个指定的异常。我们可以使用一个类 (应该是Exception的子类)或者实例参数调用raise语句来引发异 常。使用类时,程序会自动创建实例。
• 如果你只想知道这是否抛出了一个异常,并不想去处理它,那使 用一个简单的raise语句就可以再次把它抛出。如下示例:• tBiblioteka y:• <语句>
#运行别的代码
• except <名字1>:
• <语句>
#如果在try部分引发了name1异常
• except <名字2>,<数据>:
• <语句>
#如果引发了name2异常,获得附加数据
• try语句按照如下方式工作: • 首先执行try子句(在关键字try和关键字except之间的语句);如
• try语句的语法格式如下:
• try: • <语句> #运行别的代码 • except <名字>: • <语句> #如果在try部份引发了异常
• try语句的工作原理是,开始一个try语句后,Python就在当前程序 的上下文中做标记,当出现异常时就可以回到做标记的地方。
• 如果当try后的语句执行时发生异常,程序就跳回到try并执行 except子句,异常处理完毕,控制流就通过整个try语句(除非在 处理异常时又引发新的异常)。如果不想在发生异常时结束程序, 只需在try语句块中捕获异常即可。
• >>> try:
•
raise NameError('This is NameError')
第九章 异常处理
• 前面章节很多程序的执行中,经常会碰到程序执行过程中没有得 到预期结果的情况。对于程序运行过程中出现的不正常,有时称 为错误,有时称为异常,也有时说程序没有按预期运行,从本章 开始将有一个统一的称谓——异常。
• 本章将带领读者学习如何处理各种异常,以及创建和自定义异常。
• Python快乐学习班的同学参观完对象动物园后,由导游带领来到 了异常过山车入口。此处的异常过山车坐起来非常刺激,乘坐异 常过山车的过程中,过山车随时都可能停下来,有一些是正常的 停止,也会有一些在未预知的情况下停止,但只要过山车上的乘 客发挥自己的聪明才智,就有办法让停止的过山车动起来。听起 来很刺激吧,现在开始开启异常过山车之旅。
9.1 异常定义
• 在本节开始之前,先看看如下程序:
• >>> print(hello,world) • Traceback(most recent call last): • File "<pyshell#12>", line 1, in <module> • print(hello,world) • NameError: name 'hello' is not defined • 对于Python初学者,在Python的学习过程中,当编写的代码执行