raise_for_status()
是 requests 库中 Response
对象的方法,用于检查 HTTP 响应的状态码,并在请求失败时抛出 HTTPError 异常。
工作原理
当调用raise_for_status()
时:
- 如果响应的状态码为 200 到 299 之间的成功状态码,
raise_for_status()
不会做任何事情。 - 如果状态码表示错误(如 4xx 或 5xx),则会抛出
requests.exceptions.HTTPError
异常。
使用示例
import requests
url = "https://httpbin.org/status/404" # 一个返回 404 的测试 URL
try:
response = requests.get(url)
response.raise_for_status() # 如果状态码不是 2xx,会抛出 HTTPError 异常
except requests.exceptions.HTTPError as err:
print(f"HTTP error occurred: {err}") # 捕获并打印 HTTP 错误
except Exception as err:
print(f"Other error occurred: {err}") # 捕获并打印其他异常
else:
print("Request was successful!") # 如果没有异常抛出,说明请求成功