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!")  # 如果没有异常抛出,说明请求成功