欢迎访问宙启技术站
智能推送

Python中的requests.exceptionsHTTPError()异常处理示例

发布时间:2023-12-26 01:02:11

在Python中使用requests库发送HTTP请求时,可能会遇到各种异常情况,其中包括HTTP错误码。为了更好地处理这些异常情况,requests库提供了requests.exceptions模块,其中定义了一个HTTPError类,用于处理HTTP错误。

HTTPError类是一个异常类,继承自Python内置的Exception类。当requests库发现返回的响应状态码不是200时,会自动抛出一个HTTPError异常。可以通过捕获和处理这个异常来处理HTTP错误。

下面是一个使用requests.exceptions.HTTPError处理HTTP错误的示例:

import requests
from requests.exceptions import HTTPError

try:
    response = requests.get('https://www.example.com/404')  # 发送一个不存在的请求
    response.raise_for_status()  # 如果返回的状态码不是200,会抛出一个HTTPError异常
except HTTPError as e:
    print(f'HTTP error occurred: {e}')
else:
    print('Request succeeded. Status code:', response.status_code)

在上面的示例中,我们发送一个GET请求到一个不存在的网址"https://www.example.com/404"。由于这个网址不存在,服务器会返回一个404状态码。在捕获到HTTPError异常之后,我们打印出了异常对象的详细信息。

运行上面的示例代码,输出结果如下:

HTTP error occurred: 404 Client Error: Not Found for url: https://www.example.com/404

上面的示例中,我们首先导入了requests模块和requests.exceptions.HTTPError异常类。然后,我们使用requests.get()方法发送了一个GET请求到"https://www.example.com/404"这个不存在的网址。

当服务器返回一个状态码不是200的响应时,我们使用response.raise_for_status()方法来抛出一个HTTPError异常。在异常处理块中,我们可以根据需要进行处理。在本例中,我们只是简单地打印出了异常信息。

需要注意的是,requests库的其他异常类,如ConnectionError和Timeout等,也可以用于处理不同的异常情况。通过捕获和处理这些异常,我们可以更好地控制HTTP请求的过程,并根据需要进行适当的处理。