如何在Python中检查URL连通性并仅输出自定义错误提示?
如何让Requests在任何访问问题时仅打印“Error”?
你的代码只捕获了requests.exceptions.HTTPError,但连接超时、DNS解析失败这类访问问题属于其他异常类型(比如ConnectionError),这些未被捕获的异常会触发默认的错误回溯输出。另外,原代码里没有调用raise_for_status(),即使返回4xx/5xx这类HTTP错误状态码,也不会抛出HTTPError,导致这类错误也无法被捕获。
要实现“任何访问问题都仅打印Error”的需求,可以修改如下:
import requests url = 'https://www.google.lk' try: page = requests.get(url) page.raise_for_status() # 当响应状态码为4xx/5xx时抛出HTTPError print(page.status_code) except requests.exceptions.RequestException: print("Error")
关键修改说明:
page.raise_for_status():这个方法会在服务器返回4xx(客户端错误)或5xx(服务器错误)状态码时主动抛出HTTPError,让这类HTTP错误也能被捕获处理。- 捕获
requests.exceptions.RequestException:这是Requests库所有异常的基类,包含了ConnectionError(连接失败)、Timeout(请求超时)、HTTPError(HTTP错误)等所有与请求相关的异常,确保所有访问问题都能被统一捕获。
这样修改后,无论是连接超时、DNS解析失败,还是返回错误HTTP状态码,程序都会仅打印“Error”,不会输出完整的错误回溯信息。
内容的提问来源于stack exchange,提问作者Pathi
相关产品推荐
相关产品推荐

