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

JSch SFTP客户端连接超时、put传输中断对应JSchException有哪些?

两类已知JSchException的区别

  • com.jcraft.jsch.JSchException: timeout: socket is not established:属于连接建立阶段超时,出现在Session.connect()执行过程中,在你配置的连接超时阈值内,未能和远程服务完成TCP握手、SSH协议协商全流程,属于连接初始化失败场景。
  • com.jcraft.jsch.JSchException: Session.connect: java.net.SocketTimeoutException: Read timed out:属于连接建立后的读写超时,一般出现在SSH会话保活、SFTP通道数据传输过程中,Socket等待远程返回数据的时长超过了你配置的soTimeout阈值,属于运行时连接中断场景。

需捕获的符合重试条件的异常

除上述两类外,你还需要捕获带以下关键词的JSchException,覆盖连接、传输中断的全场景:

  • 会话断开类:消息包含session is down、connection is closed by foreign host、broken pipe
  • 通道失效类:消息包含Channel is not opened、SFTP channel is closed
  • 网络异常封装类:消息嵌套了SocketException、ConnectException、NoRouteToHostException相关字样

注意事项:

  1. 捕获时优先做关键词包含匹配,不要做全字匹配,避免JSch不同版本的异常消息细微差异导致漏判
  2. 不要对所有JSchException都触发重试,类似Auth fail(认证失败)、Permission denied(权限不足)这类业务逻辑错误,重试无法解决问题,需直接排除

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 11:36:03