首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多次检查tryCatch

多次检查tryCatch
EN

Stack Overflow用户
提问于 2021-05-13 16:53:44
回答 1查看 67关注 0票数 2

我有给多个人发送电子邮件的脚本。有时它会返回错误,所以我想再尝试3次。如果在3次尝试中没有成功,则返回错误消息。到目前为止,我使用的是tryCatch(),它在第一次尝试发生错误时返回消息,然后跳到下一个收件人。

代码语言:javascript
复制
 tryCatch({ CODE HERE }, error=function(e){
                  print("Email not sent")
        })

代码语言:javascript
复制
library(blastula)

create_smtp_creds_file(
 file = "gmail_secret",
 user = "sender@email.com",
 provider = "gmail"
 )

email <- prepare_test_message()

email %>%
  smtp_send(
    from = "sender@email.com",
    to = "recipient@email.com",
    credentials = creds_file(
      "gmail_secret")
  )
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-13 17:33:05

我会使用while循环:

代码语言:javascript
复制
fails <- 0
success <- FALSE

while (fails < 3 && !success) {
  a <- tryCatch(
    smtp_send(email, 
              from = "sender@email.com", 
              to = "recipient@email.com",
              credentials = creds_file("gmail_secret")
    ), error = function(e) e)
  if (!inherits(a, "simpleError")) {
    success <- TRUE
  } else {
    fails <- fails + 1
  }
}

if (!success) print("Email not sent")
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67523147

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档