如何在代码的任何部分捕获异常并在 R 中执行某些操作?

How can I catch exceptions in any part of code and do something in R?

我想在代码引发错误时调用短信 API。 详细地说,我们的服务器上有很多 cron 作业,为了维护,我想知道这些代码中的任何一个何时中断。

所以我想在发生错误时给自己发短信。

我无法使用 try catch,因为我不知道哪部分代码可能会出错。

提前致谢。

您正在寻找的可能是设置自定义错误处理程序。您可以通过设置名为 error 的选项来做到这一点,默认情况下它是 NULL(除非您使用的是 RStudio)。

您可以例如将此类代码添加到您的 .Rprofile:

options(error = function() {
   your_function_to_send_sms(geterrmessage())
})

geterrmessage() 是访问最后一条错误消息的函数。您可以查看 optionsgeterrmessage 的文档了解详细信息。

我个人并没有广泛使用它,我已经编写了一个简单的代码,在某些情况下将错误转储到外部文件。