繁体   English   中英

我应该针对REST API错误提出哪个异常?

[英]Which exception should I raise for a REST API error?

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

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

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

问候。

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

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

class MyAPIClientError(Exception):
    pass

然后你可以继承那个:

class RemoteServerNotHappyError(MyAPIClientError):
    pass

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM