gpt4 book ai didi

r - 如何在自定义函数中使用option(error =)并仍然使脚本中止(在R中)

转载 作者:行者123 更新时间:2023-12-03 07:57:23 25 4
gpt4 key购买 nike

谁能指出我正确使用option(error = function(...){})的最佳方法?我想将错误写入日志文件,然后照常终止。目前我使用

  options(error = function(...) {
#... write to logfile ...
options(error = NULL)
stop(geterrmessage())
})

但是重设该选项并再次调用 stop()对我来说似乎是一种hack。我还尝试了 q("no", status = 1, runLast = FALSE)(从 stop()的文档中获取),但这似乎并不等同于普通的 stop()。例如,在RStudio服务器中,它退出整个 session 。

我需要使用 option()而不是 tryCatch(),因为我想捕获脚本中发生的所有可能的错误。我是通过cron作业启动脚本的,我想在脚本失败后立即获得电子邮件/日志条目。

最佳答案

对于这种情况,tryCatch块可能是最好的选择。

tryCatch({
#... main code to run ...

}, warning = function(w) {
#... code to run if any warnings occur ...
warning(w) # Show the warning

}, error = function(e) {
#... write to log file ...
stop(e) # Stop script and show error message. Delete this line if you do not want to stop script

}, finally = {
#... code to run whether or not error occurs ...
})

关于r - 如何在自定义函数中使用option(error =)并仍然使脚本中止(在R中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55644841/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com