![](/img/trans.png)
[英]Which exception should I raise on bad/illegal argument combinations in Python?
[英]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.