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

Python中requests.get的ConnectionRefusedError无法捕获问题求助

问题分析与解决

核心问题

你看到的ConnectionRefusedError根本不是你的requests.get请求抛出的,而是VSCode的debugpy调试器无法连接到调试端口导致的异常。这个异常发生在脚本执行之前的调试启动阶段,完全不在你写的try-except代码块的执行范围内,所以你的自定义捕获逻辑根本不会触发。

验证方式

直接在终端里用命令运行脚本,不要用VSCode的调试模式:

python your_script_name.py

如果是正常的Kraken API连接错误,你的requests.exceptions.ConnectionError捕获逻辑会正常工作。

调试器异常的解决办法

  • 检查VSCode的调试配置文件.vscode/launch.json,确认port配置没有被其他进程占用,或者直接改成一个未使用的端口(比如5678之外的端口)。
  • 关闭所有VSCode窗口和Python进程,重新打开后再尝试调试,避免旧的调试进程残留占用端口。
  • 如果不需要调试,直接在终端运行脚本即可避开这个问题。

补充:你的HTTP请求代码的潜在问题

即使解决了调试器的问题,你的代码还有一个隐患:如果requests.get抛出异常,后面的print(response.status_code)会因为response未定义而报错。应该把后续处理逻辑也放到try块里,或者在except里处理后退出脚本:

import requests
import sys

params = {
    "pair": "xbtusd",
    "interval": 5
}

url = "https://api.kraken.com/0/public/OHLC"
response = None
try:
    response = requests.get(url=url, params=params)
    print(response.status_code)
    if response.status_code in (200, 201, 202):
        print(response.json())
except requests.exceptions.ConnectionError as e:
    print(f"连接错误: {type(e).__name__} - {e}")
except requests.exceptions.RequestException as e:
    print(f"请求异常: {type(e).__name__} - {e}")
except Exception as e:
    print(f"通用异常: {type(e).__name__} - {e}")
except:
    print(f"未捕获的异常: {sys.exc_info()[0]}")

内容的提问来源于stack exchange,提问作者OJNSim

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 10:07:34