Python请求异常安全

时间:2014-04-23 14:48:01

标签: exception python-requests

互联网不稳定的一天在我的python应用程序中发现了许多错误。我正在使用请求从网络服务获取信息。我已编写代码来检查返回状态是否为200,否则我没有检查连接问题。

这是我的问题:

我应该在try / except块中包装每个 GET / PUT / POST调用吗?

我的目标是用户有一个很好的体验,而不必重新启动程序。

奖励积分,用于向我展示一种轻量级的方式来包装我现有的所有电话。

2 个答案:

答案 0 :(得分:1)

是的,你应该:

try:
    r = requests.get(http://www.example.com)
    if r.status_code == 200:
        print(r.url, " Status Code: ", r.status_code)

except requests.ConnectionError:
    print(r.url, " Failed to connect")

答案 1 :(得分:0)

是。实现异常处理总是好的。它不仅有助于避免脚本意外退出,还可以帮助记录错误和信息通知。使用Python请求时,我更喜欢捕获这样的异常:

try:
    res = requests.get(adress,timeout=30)
except requests.ConnectionError as e:
    print("OOPS!! Connection Error. Make sure you are connected to Internet. Technical Details given below.\n")
    print(str(e))            
except requests.Timeout as e:
    print("OOPS!! Timeout Error")
    print(str(e))
except requests.RequestException as e:
    print("OOPS!! General Error")
    print(str(e))
except KeyboardInterrupt:
    print("Someone closed the program")