一、异常
1、异常的定义
异常:程序无法继续执行
异常会中断程序执行
异常处理,是为了不中断程序执行。而不是避免错误。有些代码是报错就是要暴露出来
有了异常机制,错误的代码报错后抛出异常,代码从上到下,报错代码后面的正确的代码还是都要执行的
没有异常机制的话,错误的代码报错后,程序终止,不再继续执行。
当然,如果try和ecpet里面代码块,都有错误,那么程序一定会报错
语法规则:
try:
常规的代码块(可能存在着异常问题)
ecpet:
补救措施的代码块,也可以忽略不计,直接使用pass占位符
二、 异常的处理
1、try和except
1)try和except只能二选一执行,不会都执行。
try正确,不走except。try错误,走except。
2)对异常进行处理,或者忽略
pass表示占位符,忽略pass异常
如果try和except都报错。程序还是会报错
3) 捕获异常--except Exception as e
语法规则:
try
...
except Exception as e
...
4)try和except嵌套
2、 try和finally
语法规则:
try:
代码块
except:
代码块
finally: # 无论异常是否会发生,finally的代码块一定会执行
代码块
"""
三条路:try和except二选其一,或者都走不通,但是finally不管怎样,都会执行
1.try和except同时存在问题的时候,会同时反馈报错信息
2.try、except和finally都存在问题的时候,也会同时反馈报错信息
3.try和except同时存在问题,但是finally不存在问题,会运行finally的代码,然后会抛出另外两个异常信息
1)无论报错(异常)是否会发生,finally的代码块一定会执行
有异常,有报错
有异常,没有报错
2)try和except只能二选一执行,不会都执行。但是finally一定会执行
3、assert异常
断言: 提前准备好 预期结果 和 实际结果 进行比较,获取这个对比的结果,
只有2种结果:True False
assert 是一个关键字
语法规则:
assert 预期结果 比对符号 实际结果, "报错的返回信息"
正常的结果 -- 比如: print("用例测试通过")
自动化的用例,通过的标准:当你的用例的代码全部成功执行结束,pass,只要被中断/报错,就为fail
1)assert 预期 =实际
2)assert 预期 /=实际,报错
但是只给报了一个AssertionError,没有具体的报错信息
3) assert 预期 /=实际,自定义异常
通过变量获取报错详情,报的错误信息需要自己去设计(要用英文,不要写中文,显得low)
AssertionError: 自己设计的报错信息。
4、with...as...
语法规则:
with 代码 as 变量
用于文件读取,with代码块执行结束之后,会自动关闭文件
as主要是把很长的文件、代码,精简成一个变量,方便操作和简洁
1)普通文件只能手动关闭,不能自动关闭
2) with执行完内部代码块,会自动关闭文件
with里面的代码可以执行,但是with执行完就会自动关闭文件,外面就不能读取了