You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python requests发起HTTP请求抛异常如何隐藏traceback回溯信息

方案1:使用try-except主动捕获异常(最推荐)

该方案不会影响全局异常处理逻辑,仅针对你需要处理的异常做自定义输出,是最稳妥的实现方式。修改后完整代码如下:

import requests
import sys

def get_headers_if(response):
    if response.status_code == 200:
        headers = response.headers
        print("该URL的请求头:", response.url, "为:", headers)
    else:
        raise Exception("非预期响应 (%s: %s)." % (response.status_code, response.reason))
    
response_url = requests.get("http://wikipedia.org")
response_url_2 = requests.get("http://google.com/thehearthisflat")

try:
    get_headers_if(response_url)
    get_headers_if(response_url_2)
except Exception as e:
    # 仅打印自定义异常信息,不输出traceback
    print(e)
    # 如需异常退出可开启下行代码
    # sys.exit(1)

方案2:全局关闭traceback输出

如果你不想调整调用逻辑,可以在代码开头修改Python全局traceback输出限制,设置为0后所有未捕获的异常都不会输出回溯信息:

import requests
import sys

# 全局关闭traceback输出,调试代码时可注释该行查看回溯信息
sys.tracebacklimit = 0

def get_headers_if(response):
    if response.status_code == 200:
        headers = response.headers
        print("该URL的请求头:", response.url, "为:", headers)
    else:
        raise Exception("非预期响应 (%s: %s)." % (response.status_code, response.reason))
    
response_url = requests.get("http://wikipedia.org")
response_url_2 = requests.get("http://google.com/thehearthisflat")
get_headers_if(response_url)
get_headers_if(response_url_2)

注意:该配置全局生效,会导致所有未捕获的异常都不显示回溯信息,不利于后续代码调试,更推荐使用第一种方案。

内容的提问来源于stack exchange,提问作者Jose Antonio Piedehierro Arias

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 01:06:05