互联网不稳定的一天在我的python应用程序中发现了许多错误。我正在使用请求从网络服务获取信息。我已编写代码来检查返回状态是否为200,否则我没有检查连接问题。
这是我的问题:
我应该在try / except块中包装每个 GET / PUT / POST调用吗?
我的目标是用户有一个很好的体验,而不必重新启动程序。
奖励积分,用于向我展示一种轻量级的方式来包装我现有的所有电话。
答案 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")