'''
知识点汇总
1-异常概念
1-代码执行产生错误,无法继续
2-在异常前面代码可不可以执行? python---是可以---解释型
3-异常作用---程序不要退出-可以继续执行同时给予程序员一定的异常提示信息
2-异常的种类:
1-NameError: name 'name' is not defined
2-ZeroDivisionError: division by zero
3-FileNotFoundError: [Errno 2] No such file or directory: 't:/'
4-IndexError: list index out of range
3-异常的捕获+处理 :
1- 捕获预知异常
try:
except 异常类型:
处理内容
2-多个预知异常:执行其中一个--- 异常按照顺序抛出
except ZeroDivisionError:
print('您输入的值不能为0 !')
except ValueError:
print('输入的值的类型不对!')
3-捕获异常的具体信息;except ZeroDivisionError as e:
4-有时我们并不知道会抛出什么异常--未知异常!
1- except Exception as e:--捕获异常父类
2-简写 except :
3-捕获未知异常的具体信息:
traceback.format_exc()
5-不管是否有异常,我们都要执行一段代码 finally:
6-else: 没有异常的情况下,要执行一段代码
7-函数调用栈:
1-解释器中断当前代码的执行, 并抛出一个异常对象
2-并在函数的调用栈从下到上,层层的寻找捕获处理该异常的代码
3-如果能找到就执行对应的代码
4-如果不能则会一直找到最外层的函数结束本次执行
8-自定义异常---类
继承自Exception
class NameTooLongError(Exception):
pass
'''''
'''
if ---过滤---过滤已知 前置
try except---后置
'''
# import traceback
# while True:
# num = input('input a number:')
# try:
# print ('100 / %s = %s' % (num, 100.0/int(num)))
# # except ZeroDivisionError as e:
# # print('除数不能为0!',e)
# # except ValueError:
# # print('请输入数值!')
# except :#所有的异常
# print('异常了!',traceback.format_exc())
#
# try:
# fo = open('')
# except:
# print('请检查文件路径')
# 1- 文件只读模式打开
'''
1- 工具:点开工具--会指定路径去打开文件-------文件不存在会报错 ---加异常机制
2- web ui --selenium--
1- 10个用例执行第3个用例的时候--元素定位失败会怎么样?---代码会停止--报错
2- 效率低
3- 改善:加异常机制:3出错--12 45678910都会执行--
4- 可以针对性去排除哪个用例的颜色定位问题
'''
# def f3():#区
# print('in f3 - begin')
# b = 4/0
# print('in f3 - end')
#
# def f2():#市
# print('in f2 - begin')
# f3()
# print('in f2 - end')
#
# def f1():#省
# print('in f1 - begin')
# f2()
# print('in f1 - end')
#
# f1()#北京
# for one in range(1,5):
# if one == 2:
# raise ValueError#手动抛出
# print(one)
# #函数调用---上--->下---公文的发布
# #异常的抛出 下--->上---事故的处理
# 断言 assert---检查点-----如果后续代码比较重要,而且很依靠前面的数据或者状态
tel = input('请输入手机号:')
assert len(tel) == 11, '手机位数有误!'
print('我在处理手机运营商操作')
# --对手机号进行供应商鉴别
#
# 自定义异常-----name 过长异常--继承
class UserValueError(Exception):
print('')
class NameTooLongError(Exception):
err = 'name.long'
print('NameTooLongError')
def methFun(self):
pass
# 自定义异常-----name 过短异常--继承
class NameTooShortError(Exception):
print('NameTooShortError')
def inputName():
name = input('请输入用户名:') # 5-10
if len(name) > 10:
raise NameTooLongError # 自定义的异常要自行抛出
elif len(name) < 5:
raise NameTooShortError
try:
inputName()
except NameTooShortError:
print('您输入的用户名太短!')
except NameTooLongError as e:
print('您输入的用户名太长!', e.err)
e.methFun()
'''
'''
Python:异常
最新推荐文章于 2022-05-04 21:51:15 发布