Python连载3-Handle abnormal error

1.广义上错误可以分为错误和异常
(1)错误是可以避免的。(2)异常是指在语法逻辑正确的前提下,难以避免的的问题。
2.在python中,异常是一个类,可以处理和使用
可参考:https://www.cnblogs.com/zln1021/p/6106185.html

3.出现异常不可怕,关键在于处理异常方式
在这里插入图片描述

try:
尝试实现某个语句,如果正常就运行,except语句就不会运行了
except 异常类型1:
解决方案1:出现这种情况运行什么
except 异常类型2:
解决方案2:出现这种情况运行什么
except (异常类型1,异常类型2)
结局方案3:出现这种情况运行什么
else:
如果没有出现任何异常,将会运行什么
finally:
出不出现异常都执行

流程:

1 2 3

try -except- finally

          -else-

4.习惯:except后面的异常类型应该写出来,这样来能报告各种异常类型,上面的链接中的那几种类型就用上了。
5.异常处理的作用:
(1)使程序变得交互性能更强,当你出现错误知道如何修正,到底哪里错了。
(2)出现异常一些报错,会暴露程序内部的结构,对源码的安全性带来风险。
6.如果出现多种异常,则把具体的错误往前放,在异常类继承关系中,越是子类的异常,越要往前放;越是父类的异常越要往后放。
在这里插入图片描述
在这里插入图片描述

7.except Exception:
print(“我也不知道是什么异常”)
这里的异常可以参考,上面的链接,最后写上这一句,找不到异常的种类,这句肯定拦截了,因为Exception是所有异常的父类,别的拦截不了,她肯定拦截了。

8.源码
https://github.com/ruigege66/Python_learning/blob/master/d2_1_abnormal_use

9.关注微信公众号:傅里叶变换
在这里插入图片描述

07-07 14:09:35.054 pull_up_ics_tep [INFO] 下发测试用例给DeviceTest框架,下发内容:{'groupId': '10.39.85.66:8810', 'taskId': '5567671', 'blockId': '4908973416004059136_1', 'agentLogLink': 'http://10.39.85.66:8008/ATLog/task_5567671/block_4908973416004059136_1/agent.log', 'testSuitMap': {}, 'redirectLogName': '', 'repeat': 1, 'projectTxt': 'D:\\Local\\DeviceTest\\20250707113850_c385\\icsv100_changan_c385\\project8810.txt', 'projectConfig': '', 'host': '127.0.0.1', 'port': 18010, 'vtestTaskVersion': None, 'dut_sn': 'R12545271605', 'customParams': {'sysmonitor_collection': {'time': 60}, 'userextend': {'deployParams': {'softPkg': [{'componentName': 'ICS', 'softPkgPath': 'https://cmc-szv.clouddragon.huawei.com/cmcversion/index/releaseView?deltaId=12704887610934528&isSelect=Software'}]}}}, 'taskInfo': {'runTaskId': '5567671', 'blockId': '4908973416004059136', 'creator': 'yWX1425008', 'taskExecutor': 'zWX1425150', 'taskName': 'H97E_OTA升级-66', 'link': 'https://tengwu.ias.huawei.com/tengwu-role/app/testFactory?currentVersion=Tengwu 1.0.0&platform=tengwu-role&iframeInfo=%252Fvtest-front-desk%252Fhome%2523task%252Fdetail%252F5567671%253FtmssRootNodeUri%253D00grf757t8v%2526tmssServer%253Dhttp%253A%252F%252Fszvtms07.tmss.huawei.com%2526wsId%253D252%2526pbiCode%253D251027326%2526project%253DTengwu%2B1.0.0', 'testcaseList': [{'caseNetWork': '', 'extend': {'physicalAutoType': '', 'analyzedBy': '', 'NetworkScriptName': '', 'logicCaseOwner': '', 'rank': '6', 'physicalCaseOwner': '', 'physicalEnvtype': ''}, 'logPath': 'https://inner-api.tengwu.ias.huawei.com/vtest-log/logpath/202577/5567671/4908973381644320768/4908973416004059136/07l9106lgd2s182v', 'name': '升级状态正常切换_升级成功一次', 'number': 'TC_RJSJ_TF001_FUNC001_006', 'otherLogPath': 'https://tengwu.ias.huawei.com/vtest-ics-log/icslogpath/202577/5567671/4908973381644320768/4908973416004059136/07l9106lgd2s182v', 'round': 1, 'type': 'TestCase', 'uri': '/02ire0fuv8g/07190vfuhi848/07k7105qtqtf4/07k7105qtqtgc/07lb105qu1rlvu7g/07l9106lgd2p282o/07l9106lgd2pm82p/07l9106lgd2qn82r/07l9106lgd2s182v/', 'version': '2'}]}, 'versionParams': {'bversion': 'ICSP 5.0.130-0000000_可靠性自动化测试', 'bversionUri': '/02ire0fuv8g/07190vfuhi848/07k7105qtqtf4/', 'cversion': 'ICSP 5.0.0', 'cversionUri': '/02ire0fuv8g/07190vfuhi848/'}, 'logicNetwork': 'ICS_SMOKE'} 07-07 14:09:35.054 pull_up_ics_tep [INFO] 下发测试用例给DeviceTest框架,下发url:http://127.0.0.1:18467/devicetest/agent/v1/send 07-07 14:09:35.062 pull_up_ics_tep [INFO] 下发测试用例响应内容:(200, {'Server': 'BaseHTTP/0.6 Python/3.7.4', 'Date': 'Mon, 07 Jul 2025 06:09:35 GMT', 'request_id': '1751868575058', 'Content-Length': '37'}, '{"status": "ok", "result": "success"}') 07-07 14:09:35.181 start_timer [INFO] 等待指令开启计时器 07-07 14:09:36.030 dump_pyprocess_info [INFO] proc_data:{'9500': ['"python" D:\\DeviceTestTools\\device-tools-agent\\agent_main.py\r\r'], '9904': ['"python" D:\\DeviceTestTools\\tAgent\\product_execute\\app.py\r\r'], '19948': ['"D:\\DeviceTestTools\\python\\python.exe" "-c" "from multiprocessing.spawn import spawn_main; spawn_main(parent_pid=9500, pipe_handle=2564)" "--multiprocessing-fork"\r\r'], '5000': ['python D:\\Local\\DeviceTest\\20250707113850_c385\\icsv100_changan_c385\\devicetest\\agent\\ics_tep.py -p 18467\r\r']}.返回值是True 07-07 14:09:36.193 start_timer [INFO] 等待指令开启计时器 07-07 14:09:37.206 start_timer [INFO] 等待指令开启计时器 07-07 14:09:38.219 start_timer [INFO] 等待指令开启计时器 07-07 14:09:39.231 start_timer [INFO] 等待指令开启计时器 07-07 14:09:39.840 dump_pyprocess_info [INFO] proc_data:{'9500': ['"python" D:\\DeviceTestTools\\device-tools-agent\\agent_main.py\r\r'], '9904': ['"python" D:\\DeviceTestTools\\tAgent\\product_execute\\app.py\r\r'], '19948': ['"D:\\DeviceTestTools\\python\\python.exe" "-c" "from multiprocessing.spawn import spawn_main; spawn_main(parent_pid=9500, pipe_handle=2564)" "--multiprocessing-fork"\r\r'], '5000': ['python D:\\Local\\DeviceTest\\20250707113850_c385\\icsv100_changan_c385\\devicetest\\agent\\ics_tep.py -p 18467\r\r']}.返回值是True 07-07 14:09:40.245 start_timer [INFO] 等待指令开启计时器 07-07 14:09:41.257 start_timer [INFO] 等待指令开启计时器 07-07 14:09:42.267 start_timer [INFO] 等待指令开启计时器 07-07 14:09:43.280 start_timer [INFO] 等待指令开启计时器 07-07 14:09:44.242 dump_pyprocess_info [INFO] proc_data:{'9500': ['"python" D:\\DeviceTestTools\\device-tools-agent\\agent_main.py\r\r'], '9904': ['"python" D:\\DeviceTestTools\\tAgent\\product_execute\\app.py\r\r'], '19948': ['"D:\\DeviceTestTools\\python\\python.exe" "-c" "from multiprocessing.spawn import spawn_main; spawn_main(parent_pid=9500, pipe_handle=2564)" "--multiprocessing-fork"\r\r'], '5000': ['python D:\\Local\\DeviceTest\\20250707113850_c385\\icsv100_changan_c385\\devicetest\\agent\\ics_tep.py -p 18467\r\r']}.返回值是True 07-07 14:09:44.293 start_timer [INFO] 等待指令开启计时器 07-07 14:09:45.304 start_timer [INFO] 等待指令开启计时器 07-07 14:09:46.318 start_timer [INFO] 等待指令开启计时器 07-07 14:09:47.331 start_timer [INFO] 等待指令开启计时器 07-07 14:09:48.344 start_timer [INFO] 等待指令开启计时器 07-07 14:09:49.207 dump_pyprocess_info [INFO] proc_data:{'9500': ['"python" D:\\DeviceTestTools\\device-tools-agent\\agent_main.py\r\r'], '9904': ['"python" D:\\DeviceTestTools\\tAgent\\product_execute\\app.py\r\r'], '19948': ['"D:\\DeviceTestTools\\python\\python.exe" "-c" "from multiprocessing.spawn import spawn_main; spawn_main(parent_pid=9500, pipe_handle=2564)" "--multiprocessing-fork"\r\r'], '5000': ['python D:\\Local\\DeviceTest\\20250707113850_c385\\icsv100_changan_c385\\devicetest\\agent\\ics_tep.py -p 18467\r\r']}.返回值是True 07-07 14:09:49.349 start_timer [INFO] 等待指令开启计时器 07-07 14:09:50.354 start_timer [INFO] 等待指令开启计时器 07-07 14:09:51.365 start_timer [INFO] 等待指令开启计时器 07-07 14:09:52.377 start_timer [INFO] 等待指令开启计时器 07-07 14:09:52.789 dump_pyprocess_info [INFO] proc_data:{'9500': ['"python" D:\\DeviceTestTools\\device-tools-agent\\agent_main.py\r\r'], '9904': ['"python" D:\\DeviceTestTools\\tAgent\\product_execute\\app.py\r\r'], '19948': ['"D:\\DeviceTestTools\\python\\python.exe" "-c" "from multiprocessing.spawn import spawn_main; spawn_main(parent_pid=9500, pipe_handle=2564)" "--multiprocessing-fork"\r\r'], '5000': ['python D:\\Local\\DeviceTest\\20250707113850_c385\\icsv100_changan_c385\\devicetest\\agent\\ics_tep.py -p 18467\r\r']}.返回值是True 07-07 14:09:53.328 handle_message [INFO] handle_message recv uri: /tepmanager/hutaf-tc/v1/complete 07-07 14:09:53.328 report_end [INFO] --->> report end start 07-07 14:09:53.328 report_end [INFO] 框架异常上报用例块消息 07-07 14:09:53.329 report_end [INFO] response's headers: {'request_id': '1751868593328'} 07-07 14:09:53.329 report_end [INFO] response's body: {'retcode': '0', 'status': 'OK'} 07-07 14:09:53.389 start_timer [INFO] 等待指令开启计时器 07-07 14:09:54.396 start_timer [INFO] 等待指令开启计时器 07-07 14:09:55.407 start_timer [INFO] 等待指令开启计时器 07-07 14:09:56.330 _ticcReportExecutorEnd [INFO] wait for ics_tep check finished!!! 07-07 14:09:56.330 _ticcReportExecutorEnd [INFO] ABNORMAL DEVICES: None 07-07 14:09:56.330 _ticcReportExecutorEnd [INFO] acquire lock 07-07 14:09:56.330 _ticcReportExecutorEnd [INFO] release lock 07-07 14:09:56.330 uploadTestCaseResult [INFO] acquire lock 07-07 14:09:56.330 uploadTestCaseResult [INFO] 测试用例:TC_RJSJ_TF001_FUNC001_006 07-07 14:09:56.330 uploadTestCaseResult [INFO] 执行结果:Blocked 07-07 14:09:56.330 uploadTestCaseResult [INFO] 失败原因:用例框架异常,环境配置解析适配,执行结束, If you use `@root_validator` with pre=False (the default) you MUST specify `skip_on_failure=True`. Note that `@root_validator` is deprecated and should be replaced with `@model_validator`. For further information visit https://errors.pydantic.dev/2.5/u/root-validator-pre-skip 07-07 14:09:56.330 notify_upload_log [INFO] D:\Local\ATLog\task_5567671\block_4908973416004059136_1\agent.log 路径是agent日志,不是用例日志。 07-07 14:09:56.330 _ticcReportCaseResult [INFO] ------------------------- uploadTestCaseResult Start 07-07 14:09:56.330 _ticcReportCaseResult [INFO] 上报用例的执行结果 07-07 14:09:56.330 _ticcReportCaseResult [INFO] upload result's url: https://apigw-cn-south.huawei.com/api/apigateway/tengwu/vtest/testcase-result 07-07 14:09:56.330 _ticcReportCaseResult [INFO] upload result's headers: {'request_id': '1751868596331'} 07-07 14:09:56.330 _ticcReportCaseResult [INFO] upload result's body: {'runTaskId': '5567671', 'blockId': '4908973416004059136', 'product': '253129109', 'number': 'TC_RJSJ_TF001_FUNC001_006', 'startTime': 1751868596331, 'finishTime': 1751868596331, 'result': '4', 'resultInfo': '用例框架异常,环境配置解析适配,执行结束, If you use `@root_validator` with pre=False (the default) you MUST specify `skip_on_failure=True`. Note that `@root_validator` is deprecated and should be replaced with `@model_validator`.\n\nFor further information visit https://errors.pydantic.dev/2.5/u/root-validator-pre-skip', 'uri': '/02ire0fuv8g/07190vfuhi848/07k7105qtqtf4/07k7105qtqtgc/07lb105qu1rlvu7g/07l9106lgd2p282o/07l9106lgd2pm82p/07l9106lgd2qn82r/07l9106lgd2s182v/', 'localLogPath': 'D:\\Local\\ATLog\\task_5567671\\block_4908973416004059136_1\\agent.log', 'executeTeIp': '10.39.85.66'} 07-07 14:09:56.407 dump_pyprocess_info [INFO] proc_data:{'9500': ['"python" D:\\DeviceTestTools\\device-tools-agent\\agent_main.py\r\r'], '9904': ['"python" D:\\DeviceTestTools\\tAgent\\product_execute\\app.py\r\r'], '19948': ['"D:\\DeviceTestTools\\python\\python.exe" "-c" "from multiprocessing.spawn import spawn_main; spawn_main(parent_pid=9500, pipe_handle=2564)" "--multiprocessing-fork"\r\r'], '5000': ['python D:\\Local\\DeviceTest\\20250707113850_c385\\icsv100_changan_c385\\devicetest\\agent\\ics_tep.py -p 18467\r\r']}.返回值是True 07-07 14:09:56.422 start_timer [INFO] 等待指令开启计时器 07-07 14:09:56.564 _ticcReportCaseResult [INFO] upload result's response: (200, {'Server': 'API-Gateway', 'Date': 'Mon, 07 Jul 2025 06:09:56 GMT', 'Content-Length': '0', 'Connection': 'keep-alive', 'Trace-Id': 'bb1e8a8a90be477fbf63c0a50e373bea', 'jalor-jwt-verify': 'true', 'Vary': 'Access-Control-Request-Headers', 'Gateway-Version': '6.6.8.0.RELEASE', 'Gateway-Env': 'tengwu-prod', 'Time-Trace': '567b88f7-41753284,pro-gw(184.199/61738)-apig1-Route1-lb1-jwt2-server(210.146/61339-200)10-sum11', 'X-Server-Process-Time': '0.013', 'X-Upstream-Process-Time': '0.013', 'X-ALB-SERVER': 'ALB'}, '') 07-07 14:09:56.565 _ticcReportCaseResult [INFO] 成功上报用例的执行结果 07-07 14:09:56.565 _ticcReportCaseResult [INFO] 还有0条用例待上报 07-07 14:09:56.565 _ticcReportCaseResult [INFO] ------------------------- uploadTestCaseResult End 07-07 14:09:56.565 notify_upload_other_log [INFO] 上传的本地日志路径是:D:\Local\ATLog\task_5567671\block_4908973416004059136_1\agent.log\TC_RJSJ_TF001_FUNC001_006 07-07 14:09:56.565 uploadTestCaseResult [INFO] 开启线程上传所有日志到NAS 07-07 14:09:56.565 notify_upload_other_log [INFO] D:\Local\ATLog\task_5567671\block_4908973416004059136_1\agent.log\TC_RJSJ_TF001_FUNC001_006,路径在执行机上不存在 07-07 14:09:56.565 uploadTestCaseResult [INFO] release lock 07-07 14:09:56.565 _ticcReportExecutorEnd [INFO] 最后一个用例的执行结果非PASS,再次检测设备状态,隔离异常设备 07-07 14:09:56.567 _ticcReportExecutorEnd [INFO] kill tep.py process, pid: 5000 07-07 14:09:56.666 _ticcReportExecutorEnd [INFO] kill tep.py process done 07-07 14:09:56.666 _ticcReportExecutorEnd [INFO] ------------------------- reportExecutorCmdEnd Start 07-07 14:09:56.888 _ticcReportExecutorEnd [INFO] report executor end's url: https://apigw-cn-south.huawei.com/api/apigateway/tengwu/vtest/testcase-block-result 07-07 14:09:56.889 _ticcReportExecutorEnd [INFO] report executor end's headers: {'request_id': '1751868596666'} 07-07 14:09:56.889 _ticcReportExecutorEnd [INFO] report executor end's body: {'runTaskId': '5567671', 'blockId': '4908973416004059136', 'environmentId': 'SDE-0aab505dd5184039a86ba5461c00211c', 'result': '0', 'failCaseReExecute': False} 07-07 14:09:56.889 _ticcReportExecutorEnd [INFO] response : (200, {'Server': 'API-Gateway', 'Date': 'Mon, 07 Jul 2025 06:09:56 GMT', 'Content-Length': '0', 'Connection': 'keep-alive', 'Trace-Id': '15cfe75d1f054cd9a0cad6a3973328c3', 'jalor-jwt-verify': 'true', 'Vary': 'Access-Control-Request-Headers', 'Gateway-Version': '6.6.8.0.RELEASE', 'Gateway-Env': 'tengwu-prod', 'Time-Trace': 'e55c46d5-41753507,pro-gw(187.60/61738)-apig0-Route0-lb1-jwt1-server(211.72/63402-200)5-sum5', 'X-Server-Process-Time': '0.008', 'X-Upstream-Process-Time': '0.008', 'X-ALB-SERVER': 'ALB'}, '') 07-07 14:09:56.889 _ticcReportExecutorEnd [INFO] ------------------------- reportExecutorCmdEnd End 07-07 14:09:56.889 _ticcReportExecutorEnd [INFO] ------------------------- 开始手动下发stop消息 07-07 14:09:56.889 _ticcReportExecutorEnd [INFO] 手动下发停止消息到flask's url: http://127.0.0.1:8810/api/agent/v1/testcase-block-deliver-stop 07-07 14:09:56.889 _ticcReportExecutorEnd [INFO] 手动下发停止消息到flask's headers: {'request_id': '1751868596889'} 07-07 14:09:56.889 _ticcReportExecutorEnd [INFO] 手动下发停止消息到flask's body: {'groupId': '10.39.85.66:8810', 'runTaskId': '5567671'}
07-08
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值