API访问失败期间引发的适当异常

2024-05-19 23:25:17 发布

您现在位置:Python中文网/ 问答频道 /正文

当对一个类进行编码,该类通过透明使用的一个或多个httpapi提供抽象时,当服务请求以HTTP 404或类似形式结束时,应该引发什么异常?你知道吗

该类旨在作为一个复合对象,面向那些对正在使用的服务有高层次概述但希望在API访问级别出现故障时有一个特定异常的使用者。当然,可以编写并引发自定义异常对象:

class WebServiceUnresponsive(Exception):
    pass

但是,经历了Standard Python Exceptions,我不确定我是否忽略了一个合适的候选人。如果不是这样,最好的做法是什么?你知道吗


Tags: 对象apihttp编码面向exception使用者pass
1条回答
网友
1楼 · 发布于 2024-05-19 23:25:17

使用requests

requests.exceptions包含大量内置的HTTP异常,并包含一个特定的response.raise_for_status(),它为您完成所有繁重的工作(链接中的示例):

>>> bad_r = requests.get('http://httpbin.org/status/404')
>>> bad_r.status_code
404

>>> bad_r.raise_for_status()
Traceback (most recent call last):
  File "requests/models.py", line 832, in raise_for_status
    raise http_error
requests.exceptions.HTTPError: 404 Client Error

如果不直接使用请求,可以from requests import exceptions然后抛出自己的请求。你知道吗

if exception_encountered(req):
    raise exceptions.HTTPError("Got a 404 yo... server says there's nothing there :(")

相关问题 更多 >