错误
语法错误
逻辑错误
系统错误
异常
程序执行过程中出现的未知错误
语法和逻辑都是正常的
程序业务逻辑不完善引起的程序漏洞
错误 与 异常的区别?
--异常可以被捕获和处理
--错误一般是编码错误、逻辑错误、系统错误
常见的异常类型
除零类型,名称异常,索引异常,键异常,值异常,属性异常等
异常捕获与异常处理
# 定义除函数
def div(a, b):
return a / b
print(div(1, 1))
# print(div(1, 0))
# 捕获异常1.0
try:
print(div(1, 0))
except:
print("这是个异常")
# 捕获异常2.0
try:
print(div(1, 0))
except ZeroDivisionError as e:
# 收集异常
print(e)
print("这是个异常")
else:
print("没有异常")
finally:# 最终都会被执行,无论有异常或者无异常
return a
抛出异常
raise +异常
自定义异常
程序调试--debug
修正语法错误和逻辑错误的过程
调试方法
1、对应位置使用"print"或者“logging”打印日志信息
2、启动断点模式debug调试
打断点
蓝色行,表示即将被执行,但还没有被执行
断点当前行不执行
step over,
如果函数内没有打断点的话,会直接走完(不进入)函数里面的执行逻辑,
如果函数里面打的有断点的话,才会进入
step into
无论函数内部是否打断点,都会进入函数内部,按照代码执行逻辑,单行进行调试,
跳转进入当前行调用的函数
step into my code
只跳转当前脚本文件内的函数内部
step out
(比如进入了for循环,会一次把循环全部走完,然后把最终的值拿到,给到引用这个值的变量)
从里面一层的函数跳转到外边一层
run to cursor
比如打了两处断点
从当前断点处,直接运行到下一处断点