我正在用Python编写一个简单的API客户端,我想知道如果远程服务器不满意,我应该引发什么异常。
API本身的文档很少(我不知道所有可能的错误消息,所以我不能只为它们定义所有的自定义类),我让Requests处理HTTP级错误,这会引发{{1在这些情况下,但如果服务器只在JSON响应中提供HTTPError
密钥,我应该提出什么?
我目前正在使用error
,但感觉相当广泛,我想知道是否有更好的选择。
问候。
答案 0 :(得分:1)
是的,只是提出Exception
可能过于宽泛。
通常模块应该定义自己的基本异常类:
class MyAPIClientError(Exception):
pass
然后你可以继承那个:
class RemoteServerNotHappyError(MyAPIClientError):
pass
RemoteServerNotHappyError
应该提一下服务器的json返回的内容,这是API客户端类所不期望的。根据需要添加相关的错误消息。
这意味着您的库的用户可以捕获这些特定的异常(他们可能知道如何处理),而不必捕获每个异常(他们肯定不知道如何处理每种可能的故障模式)。