Python中的异常处理问题
'''
在程序执行的过程中,都会存在异常的情况,和设计测试用例的思想一样
需要考虑被测功能点的正常功能点和异常功能点
try:
except:
else:
finally:
执行顺序如下:
1、如果try执行正常,代码就执行到else的逻辑在执行finally
2、如果try执行异常,代码就执行到except的逻辑在执行到finally
执行正常的顺序try-->else-->finally
执行异常的顺序try-->except-->finally
'''
1.异常报错表
其中ZeroDivisionError和Exception个人理解为 包含与被包含的关系
在同一函数中如果ZeroDivisionError在Exception上方
则不执行Exception
2.在异常处理中的基本逻辑

1 def func(a,b): 2 try: 3 print(a/b) 4 # except ZeroDivisionError: #除(或取模)零(所有数据类型) 5 # print('分母不能为0') 6 except Exception as e: #常规错误的基类别 #执行异常进入except 7 print(e.args) 8 else: #执行正确进入else 9 print('try执行正确,我才能够被执行到') 10 finally: #不管执行正常或者异常 都走到finally 11 print('不管程序是否被执行,我都会被执行到') 12 func(4,2) 13 func(4,0)
在上述代码中,可以看到 func(4,0)当中
分母是不可以作为0进行输出执行
所以执行错误 先从try-->进except中告知错误类型-->最后进入到finally输出结果
3.关于登录实战异常处理问题

1 def register(): 2 username=input('请输入你的账户:\n') 3 password=input('请输入你的密码:\n') 4 temp=username+','+password 5 with open('world.txt','w',encoding='utf-8') as f: 6 f.write(temp) 7 # f=(open('world.txt','w')) 8 # f.write(temp) 9 # f.close() 10 11 def login(): 12 username=input('请输入你的账户:\n') 13 password=input('请输入你的密码:\n') 14 with open('world.txt','r') as f: 15 # f=(open('world.txt','r')) 16 lists=f.read().split(',') 17 if username==lists[0] and password==lists[1]: 18 print('登录成功') 19 else: 20 print('登录失败') 21 if __name__ == '__main__': 22 while True: 23 try: 24 f=int(input('1.注册账号 2.登录账号 3.其他选项:\n')) 25 except: 26 continue 27 else: 28 if f==1: 29 register() 30 elif f==2: 31 login() 32 elif f==3: 33 break
在上述的main函数当中,我们可以看到 :
在try:
f=int(input('1.注册账号 2.登录账号 3.其他选项:\n'))中
我们加入了try判断的逻辑 如果我们输入除了123以上的变量
都会视为try执行异常 执行except的continue继续
这样系统就不会进行报错,而是会提示输入错误,请从新输入
4.关于异常处理的本质
个人认为异常处理问题的本质就是在程序员进行开发的时候,不知道哪里出现了错误
当测试人员进行测试的时候就可以用上述的方法进行初步的判断并且反馈给开发工程师
进行调试,将产品进行完善。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!