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

使用Python中的requests.exceptionsHTTPError()处理HTTP请求错误

发布时间:2023-12-26 01:01:53

在Python中,可以使用requests库来发送HTTP请求。当HTTP请求出现错误时,requests库会抛出一个HTTPError异常。通过捕捉这个异常,可以对错误进行处理。

以下是一个使用requests.exceptions.HTTPError处理HTTP请求错误的例子:

import requests
from requests.exceptions import HTTPError

try:
    # 发送一个错误请求
    response = requests.get('https://www.example.com/404')
    # 检查响应的状态码
    response.raise_for_status()
except HTTPError as http_error:
    print(f"HTTP error occurred: {http_error}")
except Exception as error:
    print(f"Other error occurred: {error}")
else:
    print("Request was successful")

在上面的例子中,我们发送了一个错误请求到https://www.example.com/404。这个URL返回了一个404错误,意味着页面不存在。由于我们使用了response.raise_for_status(),这个方法会抛出一个HTTPError异常。我们在try块中捕捉这个异常,并打印出错误消息。如果请求没有发生错误,那么else块中的代码会被执行,表示请求成功。

除了HTTPError之外,还可以捕捉其他类型的requests异常,例如ConnectionErrorTimeout等。根据实际情况,可以在try块中使用多个except语句来处理不同类型的异常。

import requests
from requests.exceptions import HTTPError, ConnectionError, Timeout

try:
    # 发送一个错误请求
    response = requests.get('https://www.example.com/404')
    # 检查响应的状态码
    response.raise_for_status()
except HTTPError as http_error:
    print(f"HTTP error occurred: {http_error}")
except ConnectionError as connection_error:
    print(f"Connection error occurred: {connection_error}")
except Timeout as timeout_error:
    print(f"Timeout error occurred: {timeout_error}")
except Exception as error:
    print(f"Other error occurred: {error}")
else:
    print("Request was successful")

在这个例子中,我们增加了对ConnectionErrorTimeout的处理。例如,如果网络连接出现问题,ConnectionError异常会被捕捉到,并打印出相关的错误消息。

总结而言,requests.exceptions.HTTPErrorrequests库中用来处理HTTP请求错误的异常。通过捕捉这个异常,可以对错误进行适当的处理,例如打印错误消息或采取其他的错误处理逻辑。