【发布时间】:2020-11-20 06:00:32
【问题描述】:
我正在尝试编写一个函数来处理批处理作业的执行, 记录错误和作业结果的统计信息。
有没有办法从 finally 块中引用 expr 块的返回值?
my_do <- function(FUN, ...){
result <- tryCatch({
FUN(...)
},
error = function(e) {
message("error.")
},
finaly = {
# how can I reference the returning value of FUN(...) in finally block?
# so for example, I can write code like this:
message(paste("Result dimensions:", dim(expr_result)))
},
)
return(result)
}
【问题讨论】:
-
如果
FUN(...)抛出错误,则没有返回值。我认为您可能对重新启动感兴趣,但您的示例既不完整/不可重现,也不够具体。 -
感谢 Roland 的评论,是的,当我试图最小化我的原始代码时,我确实错过了一些使问题有点模糊的部分。最初我的代码有一个安全机制,可以在发生错误时返回替代数据帧。
标签: r try-catch-finally