背景
项目需要的一个脚本程序,有一个功能是发送post请求获取数据。测试测的时候发现程序隔天停掉了,猜测是对方主机某一时刻断网了,所以导致程序停掉。
分析
我们发送post请求肯定是依靠网络的,如果网络断掉,又没有捕捉错误,那程序肯定会报错中断。
ps:初次写的时候确实没想到这一点,况且我是改写这个程序,原本它就那样。(从400+改到800+行,被我改的"面目全非" -. -)
解决
- 首先要复现这个bug,很明显程序会停掉。
- 捕捉错误,加上
try …… except Exception
,然后断网。捕捉到了错误ConnectionError - 捕捉的错误改成
requests.exceptions.ConnectionError
,当发生断网时,记录日志。 - 在
try except
外加一个while True
循环,如果发生断网,但是post请求还未成功获取到数据,就一直在这运行。 try
操作下加入break
,如果成功就跳出while True
循环except
操作下加入等待。
ok,解决。
requests.exceptions.ConnectionError
请求未知的服务器,抛出异常
ps:我们这里是因为断网抛出的。
评论列表,共 0 条评论
暂无评论