第6章 Python异常处理

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Python中的错误和异常
异常
异常是指程序语法正确,但执行中因一些意外而导致的错误,异
常并不是一定会发生,例如两个数相除时,除数为0时将会发生异常。 默认情况下,程序运行中遇到异常时将会终止,并在控制台打印出异 常出现的堆栈信息。通过程序可避免因异常导致的程序终止。
def str_to_int(content): return int(content)
Python中通常将可能发生异常的代码放在try语句中,如果发生异常则通 过except语句来捕获异常并对做一些额外处理,如果没有发生异常则执行后 面的else语句,最后执行finally语句做一些收尾操作。
Python中的错误和异常
try…except…异常处理结构
Python异常处理最基本的结构是try…except…结构,语法如下:
如果所有except语句都不匹配,那就相当于未捕获异常,此时将采 用默认处理方式,程序终止,打印异常堆栈信息。通常会让最后一 个except不指定异常名称,此时,可处理所有的异常。
程序举例
def division(a, b): try: a = float(a) b = float(b) print("a =", a, ", b =", b) c=a/b print("c =", c) return c except ZeroDivisionError: print("抛出异常,除数不能为 0!") print("division函数执行结束!")
调用函数,传递不同参数,观察来自百度文库果:
division(6, “8”),此时程序正常执行,打印 出a,b,c 的值,遇到 return 结束;
division(6, 0),此时在除法之前都正常执行, 可以打印出a,b的值,然后执行除法,抛出除 数为0的异常,except中捕获了该异常,打印 相关信息,except语句结束后,继续执行 except语句后面的语句,打印相关信息。
手把手教你学Python(基础篇)
第6 章 Python中的错误和异

主要内容
CONTENTS
01 错误和异常 02 异常处理机制
01
错误和异常
Python中的错误和异常
错误
编写和运行程序时,不可避免地会产生错误和异常。调试程序,发现 错误并解决错误是程序员的必备技能之一。
错误通常是指代码运行前的语法或逻辑错误。语法错误是指源代码中
try: 语句块
except 异常名称1: 处理异常的代码块
… except 异常名称n:
处理异常的代码块 …
try子句中可含多条语句,如果未发生异常,语句依次执行,如果发 生异常,则忽略下面的语句,并匹配except语句;
try子句后可接多个except语句,发生异常时,按照except语句顺 序从上到下依次匹配,如果匹配成功则执行该except子句中的代码 块,异常处理结束,不再匹配后面的except语句。
的拼写不符合解释器和编译器所要求的语法规则,一般集成开发工具中都 会直接提示语法错误,编译时提示SyntaxError。必须在程序执行前改正, 否则程序无法运行。逻辑错误是程序代码可执行,但执行结果不符合要求。 例如求两个数中最大数,返回的结果却是最小数。
Python中的错误和异常
常见的语法错误
需要使用英文符号的地方用了中文符号,例如逗号、冒号、括号等; 变量、函数等命名不符合标识符规范; 条件语句、循环语句、函数定义后面忘了写冒号; 位于同一层级的语句缩进不一致; 判断两个对象相等时,使用一个等号而不是两个等号; 语句较为复杂时,括号的嵌套关系错误,少了或多了左/右括号; 函数定义时,不同类型参数之间的顺序不符合要求;
02
异常处理机制
Python中的错误和异常
异常处理机制
异常处理是指程序设计时,就考虑到了可能出现的意外情况,为
了避免因异常而导致程序终止给用户带来不好的体验,而做的一些额外 操作。例如,当执行两个数相除时,如果用户输入的除数为0,则提示 用户除数不能为0,让他重新输入,而不是直接终止,给用户提示一大 堆异常堆栈信息。异常处理使得异常出现后,程序仍然可以执行。
含义和出现场景
下标索引越界,例如x中包含三个元素,试图访问x[3] 执行了类型不支持的操作,例如整数+字符串 键错误,访问字典中不存在的键,关键字参数匹配不到形参变量 类型符合要求,但值不符合要求,例如将字母字符串转化为整型 使用了未定义的变量或函数 执行除法时,除数为0, 例如 10/0 属性错误,试图访问不存在的属性,例如:a为列表,a.length 文件找不到错误,指定的路径下不存在指定文件
except 异常名称 as 变量 except子句的顺序会影响到程序的执行结果,如果异常之间存在包含关系,通常
会将范围大的异常放在后面,范围小的异常放在前面。
Python中的错误和异常
try…except…finally…异常处理结构
try: 语句块
一个except子句可以同时处理多个异常,多个异常名称放在一个元组中; 通常会在except子句的最后加上一个不带异常名称的except子句或异常名称为
Exception的except子句,此时可捕获所有的异常,避免程序意外终止; 通常会将捕获到的异常赋值给某个变量,然后通过该变量获取异常的信息,例如
print(str_to_int("10abc"))
异常类型
异常解释信息
异常调用的 堆栈信息
Python中的错误和异常
常见的异常
异常名称
IndexError TypeError KeyError ValueError NameError ZeroDivisionError AttributeError FileNotFoundError
division(6, “a”),此时,在将“a”转换成 浮点型时会抛出值错误异常,except中未捕获 该异常,将会打印异常堆栈信息,程序终止。
Python中的错误和异常
注意事项和技巧
try子句后面可以有多个except子句,分别用来处理不同类型的异常,但最多只有 一个except子句会执行;
相关文档
最新文档