使用 Python 的 Requests 模块捕获错误
使用 requests 模块发出 HTTP 请求时,优雅地处理错误至关重要。 try/ except 结构允许您捕获错误并做出适当的响应。
try/ except 的正确用法
提供的使用 try/ except 捕获请求的示例。ConnectionError是正确但有限的。虽然它会捕获与网络相关的问题,但它不会涵盖其他错误类型,例如超时或太多重定向。
涵盖所有异常
捕获所有请求-相关错误,可以使用基类异常requests.exceptions.RequestException:
try: r = requests.get(url, params={'s': thing}) except requests.exceptions.RequestException as e: # Handle the error accordingly
处理特定错误
或者,您可以单独捕获特定错误类型:
try: r = requests.get(url, params={'s': thing}) except requests.exceptions.Timeout: # Retry or continue in a retry loop except requests.exceptions.TooManyRedirects: # Prompt the user to correct the URL except requests.exceptions.RequestException as e: # Handle catastrophic errors
捕获 HTTP 错误
如果如果您想引发 HTTP 错误代码的异常(例如 401 Unauthorized),请在发出请求后调用 Response.raise_for_status():
try: r = requests.get('http://www.google.com/nothere') r.raise_for_status() except requests.exceptions.HTTPError as err: # Handle the HTTP error
通过实施正确的错误处理,您可以确保您的脚本/程序可以响应有效地解决 HTTP 请求期间遇到的不同错误。
以上是使用Python的Requests模块时如何优雅地处理错误?的详细内容。更多信息请关注PHP中文网其他相关文章!