R tryCatch()-在finally中引用expr()的返回?

R tryCatch()-在finally中引用expr()的返回?,r,try-catch-finally,R,Try Catch Finally,我正在尝试编写一个函数来处理批处理作业的执行, 记录作业结果的错误和统计信息 是否有方法引用expr块的返回值,即finally块 my_do如果tryCatch返回值被保存到变量中,例如 x如果tryCatch返回值被保存到变量中,例如 x我建议这不是最后使用的最佳方式 有以下最佳实践可供使用finally(): 它指定要运行的代码块(不是函数),而不管初始表达式是成功还是失败。这对于清理(例如,删除文件、关闭连接)非常有用。这在功能上等同于使用on.exit(),但它可以封装比整个函数更小的

我正在尝试编写一个函数来处理批处理作业的执行, 记录作业结果的错误和统计信息

是否有方法引用expr块的返回值,即finally块


my_do如果
tryCatch
返回值被保存到变量中,例如


x如果
tryCatch
返回值被保存到变量中,例如


x我建议这不是最后使用
的最佳方式

有以下最佳实践可供使用
finally
():

它指定要运行的代码块(不是函数),而不管初始表达式是成功还是失败。这对于清理(例如,删除文件、关闭连接)非常有用。这在功能上等同于使用on.exit(),但它可以封装比整个函数更小的代码块


我建议这不是使用
finally
的最佳方式

有以下最佳实践可供使用
finally
():

它指定要运行的代码块(不是函数),而不管初始表达式是成功还是失败。这对于清理(例如,删除文件、关闭连接)非常有用。这在功能上等同于使用on.exit(),但它可以封装比整个函数更小的代码块


如果
FUN(…)
抛出错误,则不会返回该错误的值。我想你可能对重启感兴趣,但你的例子既不完整/重复,也不够具体。谢谢你的评论罗兰,是的,当我试图最小化我的原始代码时,我确实遗漏了一些让问题变得模糊的地方。最初,我的代码有一个安全机制,在发生错误时返回备用数据帧。如果
FUN(…)
抛出错误,则没有返回值。我想你可能对重启感兴趣,但你的例子既不完整/重复,也不够具体。谢谢你的评论罗兰,是的,当我试图最小化我的原始代码时,我确实遗漏了一些让问题变得模糊的地方。最初,我的代码有一个安全机制,在发生错误时返回备用数据帧。感谢Evans明确指出,如果不将结果保存到对象,我无法引用expr块的输出!我错误地认为可能有一种方法以某种方式引用expr块的返回。我按照你的建议修改了我原来的代码,使它按我的意愿工作。希望你有一个美好的一天!感谢Evans明确表示,如果不将结果保存到对象,我就无法引用expr块的输出!我错误地认为可能有一种方法以某种方式引用expr块的返回。我按照你的建议修改了我原来的代码,使它按我的意愿工作。希望你有一个美好的一天!谢谢你给我指点哈德利的精彩文章!我将在这里进一步阅读。谢谢你给我指点哈德利的精彩文章!我们将在那里进一步阅读。