暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

pthhon异常语句、默认处理和异常捕获

原创 梯阅线条 2023-12-24
155

1 pthhon异常语句、默认处理和异常捕获

1.1 Python异常处理语句

Python异常可以由代码手动触发和捕获,也可以根据错误自动触发。

Python异常处理语句有下面五种。

NO 异常处理语句 描述
1 try/except 捕捉异常并恢复
2 try/finally 无论是否发生异常,都执行清理
3 raise 手动在代码中触发异常
4 assert 有条件的在代码中触发异常
5 with/as 环境管理器

1.2 python默认异常处理器

描述

未对代码做异常捕获处理时,若发生异常,会触发默认的异常处理器,并且打印出错信息,包括触发的异常和堆栈信息。

示例

>>> def myget(obj,index): return obj[index] >>> s='梯阅线条' >>> myget(s,3) '条' >>> myget(s,5) #索引越界,未做异常捕获处理时,触发默认的异常处理器 #即打印标准出错消息,包括触发的异常以及堆栈跟踪信息 Traceback (most recent call last): File "<pyshell#5>", line 1, in <module> myget(s,5) File "<pyshell#2>", line 2, in myget return obj[index] IndexError: string index out of range

1.3 python捕获异常

描述

可以通过try/except捕获异常。

try内语句触发异常时会跳到except并执行except内语句,执行完成后,继续执行后面的语句,程序不会终止。

try内发生异常后面的语句不会被执行。

示例

>>> def myget(obj,index): return obj[index] >>> s='梯阅线条' >>> def nocatcher(msg,i): print(myget(msg,i)) print('完成') # 没有异常时正常输出 >>> nocatcher(s,3) 条 完成 # 有异常没捕获时,触发默认异常处理器,程序终止,不执行后面语句,不打印完成 >>> nocatcher(s,5) Traceback (most recent call last): File "<pyshell#28>", line 1, in <module> nocatcher(s,5) File "<pyshell#26>", line 2, in nocatcher print(myget(msg,i)) File "<pyshell#2>", line 2, in myget return obj[index] IndexError: string index out of range >>> def hascatcher(msg,i): try: print(myget(msg,i)) print('在异常发生后面的语句') except IndexError as e: print('出错了:',e) print('完成') # 没有异常时正常输出 >>> hascatcher(s,3) 条 在异常发生后面的语句 完成 # 有异常且有捕获时,触发异常处理器,执行except内语句,程序继续执行后面语句,打印完成 # try内发生异常后面的语句不会被执行 >>> hascatcher(s,5) 出错了: string index out of range 完成

2 END

本文首发微信公众号:梯阅线条

更多内容参考python知识分享或软件测试开发目录。

文章转载自梯阅线条,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

文章被以下合辑收录

评论