R记录警告并继续执行

时间:2016-06-15 13:08:21

标签: r try-catch

我有一个包含在tryCatch语句中的R代码块。该块中的任何行都可能发出警告或错误。当被捕获时,我有两个警告和错误的处理程序,它们在两种情况下执行记录,并在错误情况下退出处理。

但在警告案例中,我只想记录警告,并继续正常执行。此时,捕获警告时会记录,但执行也会停止。是否有一种简单的方法来实现此功能?

1 个答案:

答案 0 :(得分:1)

不确定这是否是最惯用的解决方案,但使用tryCatchwithCallingHandlers的组合对我来说几乎是相同的情况。

我使用withCallingHandlers将调用包装到我的函数中,提供处理警告的函数;之后将继续执行该功能。我在tryCatch中包含了所有 ,提供了处理错误的函数。

tryCatch(
    withCallingHandlers(doSomething(), warning = function(w) logWarning(w)),
    error = function(e) logError(e)
)

感谢nicola对withCallingHandlers提示的评论。