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引发,也可能是你自己的程序引发,在 编程时要先分析并选取异常条件。我们在这里介绍的内容是比较基础的,要求大家熟练应用异常 机制。
学习Python中的异常处理与错误调试

学习Python中的异常处理与错误调试一、Python中的异常处理在编程中,异常是指程序在运行过程中遇到的错误或异常情况。
而异常处理就是为了让程序在遇到异常时能够正确处理,并保证程序的正常运行。
1.1 异常处理的概念Python中的异常处理主要通过try-except语句来实现。
try块中放置可能出现异常的代码,当try块中的代码出现异常时,程序会立即跳转到对应的except块中进行处理。
如果没有出现异常,程序则会继续执行except块之后的代码。
1.2 异常处理的语法Python中的异常处理语法如下:```pythontry:# 可能出现异常的代码except 异常类型1:# 处理异常1的代码except 异常类型2:# 处理异常2的代码else:# 除非发生异常,否则会执行的代码finally:# 无论是否发生异常,都会执行的代码```1.3 常见异常类型Python中常见的异常类型有:- SyntaxError:语法错误- NameError:未声明的变量名- TypeError:类型错误- ValueError:值错误- ZeroDivisionError:除零错误- FileNotFoundError:文件未找到错误- IndexError:索引超出范围错误二、错误调试技巧在编写代码时,难免会出现错误。
而错误调试就是通过查找和修正错误,使程序能够达到预期的效果。
2.1 错误调试的基本技巧- 打印调试信息:可以在代码中适当地添加print语句来输出变量的值,以帮助我们分析程序的运行过程。
- 使用断点:在代码中设置断点,以便在程序执行到断点处时可以逐行执行代码,查看每一步的执行情况。
- 缩小范围:当出现错误时,可以将代码缩小范围,逐渐排除不可能的错误,最终定位到问题所在。
- 查阅文档和资源:如果遇到困难,可以查阅官方文档、在线资源或者咨询专业人士,以获取相关的帮助和指导。
2.2 常见的错误调试工具- print语句:通过在代码中添加print语句输出变量信息,以便了解代码执行过程中的变化。
Python异常处理错误和异常

Python异常处理错误和异常Python异常处理:错误和异常Python是一种功能强大的编程语言,具有丰富的异常处理机制。
在编写Python代码时,我们经常会遇到各种错误和异常情况。
本文将介绍Python中的异常处理以及如何正确地处理错误和异常,以提高代码的鲁棒性和可靠性。
1. 异常处理的基本概念在Python中,异常是指在程序执行过程中发生的错误或异常情况。
当出现异常时,程序会中断执行并抛出一个异常对象。
为了避免程序崩溃,我们可以使用异常处理机制来捕获和处理这些异常。
2. 异常处理语句Python提供了try-except语句来进行异常处理。
try代码块用于包含可能抛出异常的代码,而except代码块用于捕获并处理这些异常。
下面是一个简单的异常处理示例:```pythontry:# 可能抛出异常的代码file = open("example.txt", "r")content = file.read()print(content)file.close()except FileNotFoundError:# 处理文件未找到异常print("文件未找到!")```在上面的例子中,try代码块尝试打开一个名为"example.txt"的文件并读取内容,如果文件不存在,会抛出一个FileNotFoundError异常。
except代码块捕获并处理这个异常,并打印出相应的错误信息。
3. 捕获多个异常可以在一个try语句中捕获多个不同类型的异常。
这样可以根据抛出的不同异常类型执行不同的处理逻辑。
例如:```pythontry:# 可能抛出异常的代码num1 = int(input("请输入一个整数:"))num2 = int(input("请输入另一个整数:"))result = num1 / num2print("结果:", result)except ValueError:# 处理数值转换异常print("请输入有效的整数!")except ZeroDivisionError:# 处理除零异常print("除数不能为零!")```在上述代码中,try代码块尝试将用户输入的两个字符串转换为整数,并计算它们的商。
Python快速编程入门 第9章 异常 教学PPT

try: 可能出错的代码
except [异常类型 [as error]]: 捕获异常后的处理代码
finally: 一定执行的代码
# 将捕获到的异常对象赋值error
语法格式
✎
9.2.3异常结构中的finally子句
• 无论try子句监控的代码是否产生异常,finally子句都会被执行 • finally子句多用于预设资源的清理操作,如关闭文件、关闭网络连接
✎
9.3.1 使用raise语句抛出异常
使用raise语句可以显式地抛出异常,reise语句的语法格式如下:
raise 异常类 raise 异常类对象 raise
# 格式1:使用异常类名引发指定的异常
raise 语法格式
# 格式2:使用异常类的对象引发指定的异常
# 格式3: 使用刚出现过的异常重新引发异常
try: 可能出错的代码
except [异常类型 [as error]]: 捕获异常后的处理代码
# 将捕获到的异常对象赋error
语法格式
✎
9.2.1 使用try-except语句捕获异常
try-except语句可以捕获与处理程序的单个、多个或全部异常。
num_one = int(input("请输入被除数:"))
num_two = int(input("请输入除数:"))
try:
print("结果为", num_one / num_two)
except ZeroDivisionError:
单个异常类型
print("出错了")
捕获单个异常
✎
9.2.1 使用try-except语句捕获异常
Python异常处理和错误调试

Python异常处理和错误调试Python是一种高级编程语言,广泛应用于各个领域的开发中。
然而,编写程序时难免会遇到各种错误和异常情况。
为了使我们的程序更加稳定和可靠,我们需要学会如何进行异常处理和错误调试。
一、异常处理1. 什么是异常?在程序执行过程中,如果遇到错误或异常情况,Python会抛出相应的异常。
常见的异常包括ZeroDivisionError(除零错误)、TypeError (类型错误)和FileNotFoundError(文件未找到错误)等。
2. 异常处理的作用异常处理的目的是为了让程序在出现异常时不会崩溃,而是能够继续执行或做出相应的处理。
通过异常处理,我们可以捕获异常并进行相应的处理操作,以保证程序的正常运行。
3. try-except语句在Python中,我们可以使用try-except语句来捕获异常并进行处理。
其基本语法如下:try:# 可能抛出异常的代码块except 异常类型1:# 处理异常类型1的代码块except 异常类型2:# 处理异常类型2的代码块else:# 如果没有异常发生,执行的代码块try-except语句的执行流程是,首先执行try后面的代码块,如果没有抛出异常,则执行else中的代码块;如果抛出了异常,则根据异常类型选择相应的except语句进行处理。
4. 异常类型Python中内置了多种异常类型,我们可以根据具体的情况选择相应的异常类型进行处理。
常见的异常类型包括:5. 异常处理示例下面是一个简单的示例代码,演示了如何使用try-except语句进行异常处理:try:num1 = int(input("请输入一个整数:"))num2 = int(input("请输入另一个整数:"))result = num1 / num2print("结果为:", result)except ValueError:print("输入不合法,请输入整数")except ZeroDivisionError:print("除数不能为0")except Exception as e:print("发生了其他异常:", str(e))二、错误调试1. 错误类型在Python中,除了抛出异常外,还会出现错误的情况。
第9章 异常处理及程序调试背记手册

第9章异常处理及程序调试1、Python中常见的异常2、try…except语句参数说明:block1:表示可能出现错误的代码块。
ExceptionName[as alias]:可选参数,用于指定要捕获的异常。
其中,ExceptionName 表示要捕获的异常名称,如果在其右侧加上as alias,则表示为当前的异常指定一个别名,通过该别名,可以记录异常的具体内容。
3、try…except…finally语句完整的异常处理语句应该包含finally代码块,其语法格式如下:block3对于try …except …finally 语句的理解并不复杂,它只是比try …except 语句多了一个finally 语句,如果程序中有一些在任何情形中都必须执行的代码,那么就可以将它们放在finally 代码块中。
4、使用raise 语句抛出异常如果某个函数或方法可能会产生异常,但不想在当前函数或方法中处理这个异常,则可以使用raise 语句在函数或方法中抛出异常。
raise 语句的语法格式如下:raise [ExceptionName[(reason)]]其中,ExceptionName[(reason)]为可选参数,用于指定抛出的异常名称以及异常信息的相关描述。
如果省略,就会把当前的错误原样抛出。
5、使用assert 语句调试程序Python 提供了assert 语句来调试程序,assert 语句的基本语法如下:assert expression [,reason]参数说明:expression :条件表达式,如果该表达式的值为真时,什么都不做,如果为假时,则抛出AssertionError 异常。
reason :可选参数,用于对判断条件进行描述,为了以后更好地知道哪里出现了问题。
背记有法,让英语不再成为编程学习的拦路虎!try含义:试图热度:except词义:除……之外热度:finally含义:最后热度:raise 含义:提高热度:assert 含义:维护热度:。
Python基础教程 第9章 异常处理

只要有异常(信号),解释器都要暂停当前正在执 行的程序流,而去处理因为错误引发的 异常,这就要转 入第二阶段的工作。
第二阶段:处理异常,这包括忽略错误或采取补救 措施让程序继续执行。无论是哪种方 式都代表执行的继 续,我们也可以认为这种工作是程序控制流的一个控制分 支。
Python 基础教程
第 9章 异常处理
主讲:授课教师 姓名 学院 系部名称
第 7章 Python面向对象
Python基础编程
在程序设计中,需要考虑各个方面,避免 出现错误。在开发中,有些情况是程序无法预 料
到的,对这些不能预料的情况,程序需要能进行 处理。本节介绍 Python 中的异常情况的处 理, 使程序更加完善。
错误类型是:IndexError:list index out of range 。
9.1.1 异常
Python基础编程
6.KeyError
请求一个不存在的字典关键字。当使用映射中不存 在的键时,会引发 KeyError 异常。 错误类型是: KeyError:'server'。
7.FileNotFoundError
异常名称
描述
BaseException
所有异常的父类
SystemExit
解释器请求退出
KeyboardInterru pt
用户中断执行(通常是输入^C)
Exception
常规错误的父类
StopIteration
迭代器没有更多的值
GeneratorExit 生成器(generator)发生异常来通知退出
【教学导航】
Python基础编程
Python异常处理

Python异常处理Python是一门强大的编程语言,它提供了丰富的异常处理机制,使程序在运行过程中能够优雅地处理各种错误和异常情况。
异常处理是保证代码稳定性和可靠性的重要手段,本文将介绍Python异常处理的基本概念、语法和常见应用。
一、异常处理的概念及作用异常是在程序运行过程中出现的错误或意外情况,如文件不存在、网络连接中断等。
在不处理异常的情况下,程序会终止并抛出错误信息,导致程序无法正常执行。
异常处理可以捕获异常并采取相应措施,使程序能够继续执行下去,提高程序的健壮性和稳定性。
二、Python异常处理的基本语法在Python中,异常处理主要使用try-except语句块来实现。
try块用来包含可能出现异常的代码,except块则用来捕获并处理异常。
下面是一个简单的例子:```pythontry:# 可能产生异常的代码x = 10 / 0except ZeroDivisionError:# 处理ZeroDivisionError异常print("除数不能为零")```在上面的代码中,try块包含了一个除法运算,当除数为零时会引发ZeroDivisionError异常。
except块指定了要捕获的异常类型,并在捕获到对应类型的异常时执行相应的代码。
除了使用except块捕获特定类型的异常外,还可以使用except语句来捕获所有类型的异常,或者使用多个except语句来捕获不同类型的异常。
```pythontry:# 可能产生异常的代码x = 10 / 0except ZeroDivisionError:# 处理ZeroDivisionError异常print("除数不能为零")except TypeError:# 处理TypeError异常print("类型错误")# 处理其他类型的异常print("其他异常")```三、常见的异常类型及处理方式Python内置了许多常见的异常类型,可以根据具体需求来捕获和处理异常。
Python异常处理

Python异常处理Python是一种高效、功能强大的编程语言,它在各个领域都有着广泛的应用。
当我们编写Python程序时,往往会遭遇各种异常情况——比如未定义的变量、文件读写异常等等,这就需要我们使用Python的异常处理机制来进行解决。
在这篇文章中,我们将会详细介绍Python的异常处理机制。
什么是异常?在Python编程中,异常(Exception)指的是代码运行时可能遇到的错误或异常情况。
比如:当我们在程序中调用一个不存在的变量时,Python解释器会抛出一个NameError异常。
当我们尝试打开一个不存在的文件时,Python会抛出一个FileNotFoundError 异常。
在这些异常情况中,程序会被迫中断,如果没有采取措施,则会导致程序崩溃或者出现未知错误。
为什么需要异常处理机制?在编写程序时,我们往往不能完全预测代码运行时可能遇到的各种异常情况。
即使我们在编写代码时可能会尽力去避免这些异常情况的发生,但是总会有一些意外情况发生——比如说用户输入了不合法的数据,或者硬件设备无法正常通信等等。
这时,如果我们没有采用Python的异常处理机制,程序就会崩溃。
这种情况下,我们无法在运行时对异常进行处理,也无法保证程序的正常工作。
Python异常处理机制的基本语法结构在Python中,如果我们需要处理异常情况,就需要使用try-except代码块。
try代码块中包含可能出现异常的代码,而except 代码块则用于处理try代码块中出现的异常。
一般来说,我们可以使用try-except来捕获程序中可能出现的问题,从而使程序在运行过程中遇到问题时不会崩溃。
try:# 可能出现异常的代码except Exception as e:# 处理异常的代码当Python程序运行到try-except代码块时,会尝试执行try代码块中的代码。
如果try代码块中的代码正常运行,则跳过except代码块,程序继续向下执行。
Python基础教程 第9章 异常处理

Python基础编程
9.1.2 异常的检测与处理
例 9-1-2 所示操作实例进行了异常处理,添加 except 语句捕获异常。但一般情况下,异 常只会在出 现某种情况下才能发生,此时可以添加 else 语句。当 try语句中操作正常,没有捕 获到任何错误信息,就不再 执行 except 语句,而是执行 else 语句的内容,从而 实现程序的友 好性。操作实例如例 9-1-3 所示,结合 例 9-1-4 进行深一步理解。
Python 语法错误
9.1.1 异常
续表 9-1-1 标准异常一览表
异常名称
描述
IndentationError
缩进错误
TabError
Tab 和空格混用
SystemError
一般的解释器系统错误
TypeError
对类型无效的操作
ValueError
传入无效的参数
UnicodeError
Unicode 相关的错误
SyntaxWarning
可疑的语法的警告
UserWarning
用户代码生成的警告
Python基础编程
9.1.2 异常的检测与处理
异常的检测与处理是用 try 语句来实现的。 try语句有以下两种基本形式,格式如下:
● try…except ● try…finally 对于第 1 种形式,except 子句可有多个;在第 2 种形式中,finally子句只能有一个。 try语句在两种基本形式基础上,还可以将两者复合 起来使用,格式如下: try…except…finally 这种形式是复合语句。try 子句的下面(或说后面 )是被检测的语句块,except 子句的下 面是异常处理 语句块,finally子句的下面是无论有无异常都执行的语 句块
- 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的学习过程中,当编写的代码执行