Python中的requests.exceptionsHTTPError()异常处理示例
在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请求的过程,并根据需要进行适当的处理。
