python的异常处理与调试

1. 程序里的bug
一切影响程序执行或影响程序结果的都可以被视为bug
1、直接的语法错误:编程语法错误直接导致的程序终止(例如:使用中文括弧,命令拼写错误)
2、由数据导致的程序终止(例如:列表取值,修改元组,数据类型)
程序的结果错误:没有任何语法错误,但是结果未达到预期
编程中/程序中报错是一种福利,不报错的bug往往是最麻烦的。

2. 常见的基础语法错误
最常见,没有之一的"非法"字符错误
在这里插入图片描述
数据类型操作错误(非同类项操作)
在这里插入图片描述
语法直接错误,特别注意。这个报错的行号不一定是错误的行
在这里插入图片描述
属性问题,这个就说明但钱对象无该属性
在这里插入图片描述
调用的变量/类/模块为声明
在这里插入图片描述
语法错误,程序的结尾报错(程序认为你还缺少结尾的东西)
在这里插入图片描述
语法没错,但是数据出错
在这里插入图片描述
强行修改一个不可以改变的对象
在这里插入图片描述
3. 如何拦截bug - 你就try一下
try:
a = input(“请输入第一个数字:”)
b = input(“请输入第二个数字:”)
c = int(a) + int(b)
print©
except:
print(“输入的数据有问题,请重试”)
---------------------------------------------------
try - 试一下这个代码行不行,如果行那就执行了
except - 如果你try了不行, 那就给我来处理
特别注意:
一般不用try … except … 处理基础语法问题,通常基础语法问题已经在这之前解决了
try … except …异常捕获通常是你/程序无法控制的部分
try … except …不会捕获全部基础语法错误 SyntaxError: invalid syntax

try:
	#正常执行的程序-主体
except a:#可选
	#第一种问题处理-主体
except b:#可选
	#第二种问题处理-主体
else:#可选 必须在except后
	#如果正常执行 即try执行了,则执行else主体
finally:#可选在最后
	#以上无论什么情况(成功/失败)都会执行

#注意try不能单独存在至少存在一个except或finally	

try … except …获取异常信息
在这里插入图片描述
try … except …捕获指定异常
在这里插入图片描述
try可以嵌套使用
在这里插入图片描述

常见指定异常捕获表:
1、AttributeError:属性错误,特性引用和赋值失败时会引发属性错误
2、NameError:试图访问的变量名不存在
3、SyntaxError:语法错误,代码形式错误
4、Exception:所有异常的基类,python异常类都是基类Exception的其中一员,异常都是从基类输出
5、IOError:使用了映射种不存在的关键字(键)时引发的关键字错误
6、KeyError:使用了映射中不存在的关键字(键)时引发的关键字错误
7、IndexError:索引错误,使用的索引不存在,常索引超出序列范围
8、TypeError:类型错误,内建操作或是函数应用在了错误类型的对象时会引发类型错误
9、ZeroDivisonError:除数为0,在除数操作时,第二个参数为0时引发了该错误
10、ValueError:值错误,传给对象的参数类型不正确,像是给int()函数传入了字符串数据类型的参数

如何处理非“bug”的bug - 单元测试
单元测试基本流程
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
unittest断言参考表
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值