Python 想请教大家个问题:组内已经写了 UI 自动化 case,但是代码 review 中有这一项:不能使用 try..except 很懵逼

一只咸鱼 · 2019年02月25日 · 3864 次阅读

有大佬给个建议么?为啥不能用 try..except

共收到 16 条回复 时间 点赞

我猜是框架里面有异常处理,它要获取异常信息,如果你自己处理了,它就获取不到了。
这估计是你们组的规则呗

雨夜狂奔 回复

框架里应该没异常处理吧, 辛苦您看下这样使用难道不对么 我是自己处理的异常

异常处理一般都封装在 execution 层,需要往源码里面翻翻的

andward_xu 回复

辛苦您能看下代码?组内的人说我的 except 里面没有断言 如果有错的话最好的 run 还是 OK ,是这样的么 我听怀疑的

都不带封装的吗 这代码后期维护看着都头疼

斯拉 回复

刚开始搞自动化 ,封装什么的没涉及到,还在进步中..

估计是希望出现错误的时候,这个 case 直接认为是失败,执行下一条 case.所以建议不要 try catch。不然一片飘绿,实际有 bug,这个赖谁?

韩将 回复

嗯对,在对比发现中,整个 try-execpt 和直接不用 try-except,直接使用断言报错的情况是一样的 。

仅楼主可见
测试老憨 回复

嗯呐 已经修改了 谢谢

匿名 #11 · 2019年02月28日
一只咸鱼 回复

你组员说的是对的。你捕获的异常的话,你代码不管运行怎么样,最后结果都是 pass 的。因为他们要根据你代码里面执行的异常来判断你 case 是否通过。

目测楼主用的是 AirtestIDE 吧

看着是用了 airtest 框架了,遵循框架的规则吧,就像 python 必须缩进一样,你可能觉得不适应,但是遵循规则也没错

学无止境 回复

嗯呐是 airtest

simple 回复

嗯呐是 airtest 已经修改了

匿名 #4 · 2019年03月01日
一只咸鱼 回复

这么一大串的 try,也不好啊。按理说在具体用例中,不需要加 try...catch...的,如果报错了,会打印出错误日志,并跳过该条用例了~

一只咸鱼 关闭了讨论 08月11日 15:14
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册