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

Python ftplib连接失败自动打印调用栈 如何抑制该异常输出行为

问题根因
  • FTP类的构造方法在传入主机IP、用户名、密码参数时,会自动调用connect()和login()方法完成连接、登录逻辑。你把初始化代码写在了try块外部,连接出错时抛出的异常没有被捕获,所以会直接打印堆栈信息。
  • 你在初始化时已经传入了连接参数,后续重复调用connect()方法也会引发不必要的错误。
  • 原有代码仅导入了FTP类,捕获异常时使用ftplib.all_errors会触发名称错误,无法正常匹配异常类型。
修复方案

二选一即可:

方案1:构造时直接传参,将初始化逻辑放入try块

from ftplib import FTP, all_errors

try:
    # 构造方法内部自动完成连接、登录操作
    ftp_cui = FTP(ip, username, password, timeout=5.0)
except all_errors as e:
    print("error")

方案2:构造时不传连接参数,手动调用连接/登录方法

from ftplib import FTP, all_errors

# 仅初始化实例,不触发连接
ftp_cui = FTP(timeout=5.0)
try:
    ftp_cui.connect(host=ip, port=21)
    ftp_cui.login(user=username, passwd=password)
except all_errors as e:
    print("error")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 04:54:01