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

如何在R语言for循环中捕获错误并跳转至下一次迭代?

解决try捕获错误后的迭代跳过问题

你可以通过判断data2是否为try-error类型,来决定是否执行后续的赋值和合并操作,直接进入下一次循环。修改后的代码如下:

data <- data.frame()
for(i in 1:length(df$Link)){
  data2 <- try(get_caption(df$Link[i]), silent = TRUE)
  # 检查是否捕获到错误,是的话直接进入下一次迭代
  if(inherits(data2, "try-error")){
    Sys.sleep(5)
    next
  }
  data2$videoId <- df$videoId[i]
  data2$channelId <- df$channelId[i]
  data <- rbind(data, data2)
  Sys.sleep(5)
}

关键修改说明

  • 用inherits(data2, "try-error")检测是否捕获到错误,一旦触发就用next跳过当前循环剩余代码,直接开始下一次迭代
  • 删掉了多余的i <- i+1,for循环会自动处理i的递增,手动修改会导致跳过部分链接
  • 把Sys.sleep(5)放在了两个位置:错误时也执行休眠,避免请求频率过高被限制

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 06:13:23