我想知道如何在错误后进行回调.
我尝试过这个,但它不能用于错误:
addTaskCallback(
function(expr, value, ok, visible) {
print("ok")
TRUE
}
)
getTaskCallbackNames()
print(1) #ok
ls() #ok
dont_exist() # the taskcallback isn't activated
Run Code Online (Sandbox Code Playgroud)
编辑:
得到它了!
if (!require(devtools)){install.packages("devtools")}
devtools::install_github("ThinkRstat/fcuk")
library(fcuk)
sl()
iri
view
mea
Run Code Online (Sandbox Code Playgroud)
R 提供了一些方法来添加错误和警告处理程序。你可以使用类似的东西
.Internal(.addCondHands("error",
list(error = function(e) {print("ok")}),
.GlobalEnv, NULL, TRUE))
Run Code Online (Sandbox Code Playgroud)
添加错误回调函数。我没有找到太多这方面的文档,但您可以查看源代码withCallingHandlers并tryCatch了解如何使用它。
编辑:
我还找到了一种在错误后进行回调的方法,但不是以纯 R 的方式。它依赖于Rstudio的错误回调机制:
如果你使用 Rstudio,你会发现一个全局选项“error”,Rstudio 使用它作为错误回调函数。您可以通过以下方式查看它:getOption("error")并像这样更改它:
f <- function(){
print("ok")
}
options(error = f)
Run Code Online (Sandbox Code Playgroud)
如果你想收集最新的错误消息,你可以使用geterrmessage()R 中内置的 。