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

解决Python中的requests库HTTPError()异常的方法

发布时间:2023-12-26 01:04:55

如果使用requests库发送HTTP请求时出现错误,可能会抛出HTTPError异常。HTTPError是requests库的一个异常类,用于表示HTTP请求出错的情况。解决这个异常的方法可以是捕获异常并处理,或者使用try-except语句来捕获异常。以下是两种解决方法的示例:

1. 捕获异常并处理

import requests
from requests.exceptions import HTTPError

try:
    response = requests.get('http://www.example.com')
    response.raise_for_status()  # 如果请求返回错误状态码,会抛出HTTPError异常
    print(response.text)
except HTTPError as e:
    print('HTTP error occurred: {} {}'.format(e.response.status_code, e.response.reason))

在上面的例子中,我们使用了raise_for_status()方法来检查请求的状态码,如果状态码不是200(表示请求成功),则会抛出HTTPError异常。然后,在except块中捕获这个异常并处理。

2. 使用try-except语句捕获异常

import requests
from requests.exceptions import HTTPError

try:
    response = requests.get('http://www.example.com')
    response.raise_for_status()
    print(response.text)
except requests.exceptions.HTTPError as errh:
    print('HTTP Error:', errh)
except requests.exceptions.ConnectionError as errc:
    print('Error Connecting:', errc)
except requests.exceptions.Timeout as errt:
    print('Timeout Error:', errt)
except requests.exceptions.RequestException as err:
    print('Something went wrong:', err)

在这个例子中,我们使用了try-except语句来捕获不同类型的异常,如HTTPError、ConnectionError、Timeout和RequestException。根据不同的异常类型,我们可以执行不同的操作。

无论使用哪种方法,捕获和处理HTTPError异常都是保证代码在遇到错误时不会中断执行的重要步骤。