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

掌握Python中requests.exceptions模块的常见异常

发布时间:2024-01-11 18:06:55

在Python中,requests是一个常用的第三方库,用于向网络服务器发送HTTP请求。requests.exceptions模块包含了requests库中的常见异常类。掌握这些异常类可以帮助我们更好地处理网络请求中可能出现的异常情况。

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

1. ConnectionError:连接错误,当无法建立与服务器的连接时引发的异常。

2. Timeout:超时异常,当请求超时时引发的异常。

3. TooManyRedirects:重定向异常,当请求被重定向次数过多时引发的异常。

4. RequestException:请求异常的基类,当发生其他未知请求异常时引发的异常。

下面是使用这些异常类的几个示例:

1. ConnectionError:

import requests

try:
    response = requests.get('http://www.example.com')
except requests.exceptions.ConnectionError as e:
    print('无法连接服务器:', e)

上述代码中,如果无法建立与服务器的连接,将引发ConnectionError异常,并输出提示信息。

2. Timeout:

import requests

try:
    response = requests.get('http://www.example.com', timeout=5)
except requests.exceptions.Timeout as e:
    print('请求超时:', e)

上述代码中,如果请求超时(超过5秒没有得到服务器的响应),将引发Timeout异常,并输出提示信息。

3. TooManyRedirects:

import requests

try:
    response = requests.get('http://www.example.com', allow_redirects=True, max_redirects=5)
except requests.exceptions.TooManyRedirects as e:
    print('重定向次数过多:', e)

上述代码中,如果请求被重定向次数超过5次,将引发TooManyRedirects异常,并输出提示信息。

4. RequestException:

import requests

try:
    response = requests.get('http://www.example.com')
    response.raise_for_status()  # 检查请求是否成功
except requests.exceptions.RequestException as e:
    print('请求异常:', e)

上述代码中,如果发生其他未知的请求异常,将引发RequestException异常,并输出提示信息。

上述示例只是对requests.exceptions模块中异常类的简单使用,使用时你可以根据实际情况进行适当的处理。在捕获异常后,你可以根据需要执行相应的处理逻辑,如重新发起请求、记录日志、提示用户等。这样可以提高你的程序的健壮性和容错性。