1.bug的由来及分类
bug常见的类型:
1.粗心导致的语法错误SynatxError
2.知识不熟练导致的错误:索引越界问题,函数参数使用不当问题
2.异常处理机制
python提供了异常处理机制,可以在异常出现时及时捕获,然后内部消化,让程序继续运行。
① try -- except结构
"要求输入两个整数,并进行除法运算"
try:
a = int(input('请输入一个整数'))
b = int(input('请输入另一个整数'))
res = a/b
print('结果为', res)
except ZeroDivisionError:
print('除数不允许为0')
except ValueError:
print('只能输入数字串')
print('程序结束')
②try-except-else结构
如果try块中没有抛异常,则执行else结构,如果try抛异常,则执行except块
"要求输入两个整数,并进行除法运算"
try:
a = int(input('请输入一个整数'))
b = int(input('请输入另一个整数'))
res = a / b
except BaseException as e:
print('出错了', e)
else:
print('结果为', res)
③try-except-else-finally结构
finally块无论是否异常都会被执行,能常用来释放try块中申请的资源。
"要求输入两个整数,并进行除法运算"
try:
a = int(input('请输入一个整数'))
b = int(input('请输入另一个整数'))
res = a / b
except BaseException as e:
print('出错了', e)
else:
print('结果为', res)
finally:
print('谢谢您的使用')
3.python中常见的异常类型
序号 | 异常类型 | 描述 |
1 | ZeroDivisionError | 除(或取模)零(所有数据类型) |
2 | IdenxError | 序列中没有此索引 |
3 | KeyError | 映射没有这个建 |
4 | NameError | 未声明/初始化变量(没有属性) |
5 | SyntaxError | python语法错误 |
6 | ValueError | 传入无效参数 |
4.traceback模块
使用trackback可以打印异常信息
import traceback
try:
print(1/0)
except ZeroDivisionError:
print('*****************')
traceback.print_exc()