Python中的requests.exceptions模块用于处理HTTP请求异常
发布时间:2023-12-25 03:47:07
requests.exceptions模块是requests库中的一个内置模块,用于处理HTTP请求过程中的异常情况。它提供了一系列的异常类,用于处理不同类型的异常。下面将介绍几个常用的异常类,并给出相应的使用例子。
1. requests.exceptions.RequestException
这是所有requests库中异常的基类。当发生任何请求异常时,都会抛出该异常。通常我们可以使用该异常捕获所有的请求异常。
import requests
from requests.exceptions import RequestException
try:
response = requests.get('https://www.example.com')
# 如果返回状态码不为200,抛出RequestException异常
response.raise_for_status()
except RequestException as e:
print('请求异常:{}'.format(e))
2. requests.exceptions.HTTPError
继承自RequestException类,用于处理请求返回的HTTP错误状态码异常。
import requests
from requests.exceptions import HTTPError
try:
response = requests.get('https://www.example.com/404')
response.raise_for_status()
except HTTPError as e:
print('HTTP异常:{}'.format(e))
3. requests.exceptions.Timeout
继承自RequestException类,用于处理请求超时异常。
import requests
from requests.exceptions import Timeout
try:
response = requests.get('https://www.example.com', timeout=0.001)
response.raise_for_status()
except Timeout as e:
print('请求超时:{}'.format(e))
4. requests.exceptions.ConnectionError
继承自RequestException类,用于处理连接错误异常,比如DNS解析失败、拒绝连接等。
import requests
from requests.exceptions import ConnectionError
try:
response = requests.get('http://www.notexist.example')
response.raise_for_status()
except ConnectionError as e:
print('连接错误:{}'.format(e))
5. requests.exceptions.TooManyRedirects
继承自RequestException类,用于处理请求重定向次数过多异常。
import requests
from requests.exceptions import TooManyRedirects
try:
response = requests.get('http://www.example.com', allow_redirects=True, max_redirects=0)
response.raise_for_status()
except TooManyRedirects as e:
print('重定向次数过多:{}'.format(e))
这些只是requests.exceptions模块中的几个常用异常类,实际上还有其他的异常类,用于处理不同类型的异常情况。在实际的开发中,我们可以根据具体的情况选择合适的异常类进行处理。
