Python基础教程(14)异常捕获与处理
一、什么是异常处理
异常处理也叫做异常捕获,它是对程序可能出现的错误进行提前准备和处理的行为,目的是让程序不会因为一小段错误而结束掉,而是根据提前设置好的规则进行一些操作
二、Python常见的异常类型参考
IndexError:超出索引范围
NameError: 变量未定义
SyntaxError:语法错误
TypeError:数据类型错误
三、Python异常处理语法
1、在Python中使用try语句进行异常捕获,基本语法如下
try: 可能出现的异常代码 except 出现异常后执行的代码
2、未指定异常类型时,捕获所有异常
try: f = open("/data/test.txt","r",encoding="UTF-8") #该文件并不存在,所以直接open是会报错的,这里使用try进行捕获 except: print("出现异常,该文件并不存在,替换为w模式打开") #w模式会自动创建文件 f = open("/data/test.txt","w",encoding="UTF-8")
3、指定异常类型时只捕获指定类型的异常
try: print(name) except NameError as e: print("出现了变量未定义的异常")
4、无论是否异常都要进行处理——finally指令
try: f = open("/data/test.txt","r",encoding="UTF-8") #该文件并不存在,所以直接open是会报错的,这里使用try进行捕获 except Exception as e: #捕获所有异常,可以简写为except print("出现异常,该文件并不存在,替换为w模式打开") #w模式会自动创建文件 f = open("/data/test.txt","w",encoding="UTF-8") finally: f.close() #不管是否有异常,最终都要执行该操作
5、使用raise自定义异常
def my_abs(x): if not isinstance(x,(int,float)): raise TypeError('参数类型不正确,只能为数值类型') #使用raise捕获TypeError类型的异常并返回自定义消息
6、异常的传递性
如果函数之间有调用关系,只需要在最后一层调用时进行捕获即可,因为异常会传递给它
def func1(): print("func1开始执行") num = 1 / 0 #出现除0异常 print("func1执行结束") def func2(): print("func2开始执行") fun1() #调用func1 print("func2执行结束") def main(): try: func2() except Exception as e: print(f"出现{e}异常") main()
版权声明:本文章版权归数据库运维网(www.ywdba.cn)所有。如需引用本站内容,请注明来源及作者。
评论