【发布时间】:2016-08-16 19:07:29
【问题描述】:
我正在用 Python 编写一个简单的 API 客户端,我想知道如果远程服务器不满意我应该引发什么异常。
API 本身的文档记录很差(我不知道所有可能的错误消息,所以我不能只为所有这些错误定义自定义类),我让请求处理引发 HTTPError 的 HTTP 级错误在这些情况下,但是如果服务器只在 JSON 响应中提供 error 键,我应该提出什么问题?
我目前正在使用Exception,但感觉范围很广,我想知道是否有更好的选择。
问候。
【问题讨论】:
-
您实际上已经回答了您的问题。我不知道所有可能的错误消息,所以我不能只为所有错误消息定义自定义类。如果您知道服务器返回的确切错误,并且如果您知道客户端的用户是否可能想要处理它们,那么请开始定义您自己的异常类。
-
HTTP 不是一个非常严格的协议,几个实现在处理不同返回码的方式上存在差异很多(例如,每个人都知道如何处理 404,但是416 在实现中实际上是闻所未闻的,尽管它是一个完全有效的返回码)。无论您做什么,都需要仔细记录您的实施。
标签: python rest exception-handling