我应该针对REST API错误引发哪个异常?

时间:2016-08-16 19:07:29

标签: python rest exception-handling

我正在用Python编写一个简单的API客户端,我想知道如果远程服务器不满意,我应该引发什么异常。

API本身的文档很少(我不知道所有可能的错误消息,所以我不能只为它们定义所有的自定义类),我让Requests处理HTTP级错误,这会引发{{1在这些情况下,但如果服务器只在JSON响应中提供HTTPError密钥,我应该提出什么?

我目前正在使用error,但感觉相当广泛,我想知道是否有更好的选择。

问候。

1 个答案:

答案 0 :(得分:1)

是的,只是提出Exception可能过于宽泛。

通常模块应该定义自己的基本异常类:

class MyAPIClientError(Exception):
    pass

然后你可以继承那个:

class RemoteServerNotHappyError(MyAPIClientError):
    pass

RemoteServerNotHappyError应该提一下服务器的json返回的内容,这是API客户端类所不期望的。根据需要添加相关的错误消息。

这意味着您的库的用户可以捕获这些特定的异常(他们可能知道如何处理),而不必捕获每个异常(他们肯定不知道如何处理每种可能的故障模式)。