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

Python中requests.exceptions模块的详细说明和示例

发布时间:2023-12-25 03:49:26

requests.exceptions模块是requests库中专门用于处理异常的模块。它提供了一些异常类,用于捕获requests库中可能出现的异常情况,并提供了对应的错误信息。

常见的requests.exceptions模块中的异常类包括:

1. requests.exceptions.RequestException:所有requests库中异常的基类,是其他异常类的父类。

2. requests.exceptions.ConnectionError:发生网络连接错误时抛出的异常类。

3. requests.exceptions.HTTPError:当HTTP请求返回非200状态码时抛出的异常类。

4. requests.exceptions.URLRequired:当请求中没有提供URL时抛出的异常类。

5. requests.exceptions.TooManyRedirects:当请求被重定向次数超过设定的最大次数时抛出的异常类。

6. requests.exceptions.Timeout:当请求超时时抛出的异常类。

下面是使用requests.exceptions模块的示例:

import requests
from requests.exceptions import Timeout, HTTPError

try:
    # 发送请求
    response = requests.get('https://www.example.com', timeout=3)
    
    # 检查响应状态码
    response.raise_for_status()
    
except Timeout:
    # 处理超时异常
    print("请求超时")
    
except HTTPError as e:
    # 处理HTTP错误异常
    print(f"HTTP错误: {e.response.status_code}")
    
except requests.exceptions.RequestException as e:
    # 处理其他异常
    print(e)

在上面的代码中,我们首先导入了requests模块和requests.exceptions模块。然后,我们使用try-except语句块来处理可能出现的异常。

在try块中,我们发送了一个GET请求到https://www.example.com,并设置了超时时间为3秒。然后,我们使用raise_for_status()方法来检查响应的状态码,如果状态码是非200,则会抛出HTTPError异常。

在except块中,我们根据不同的异常类型进行处理。如果发生超时异常,我们打印出"请求超时";如果发生HTTP错误异常,我们打印出具体的状态码。最后,如果发生其他异常,我们打印出异常的具体信息。

通过使用requests.exceptions模块,我们可以更好地处理requests库中可能发生的异常情况,提高代码的可靠性和稳定性。