我有一个包含在tryCatch语句中的R代码块。该块中的任何行都可能发出警告或错误。当被捕获时,我有两个警告和错误的处理程序,它们在两种情况下执行记录,并在错误情况下退出处理。
但在警告案例中,我只想记录警告,并继续正常执行。此时,捕获警告时会记录,但执行也会停止。是否有一种简单的方法来实现此功能?
答案 0 :(得分:1)
不确定这是否是最惯用的解决方案,但使用tryCatch
和withCallingHandlers
的组合对我来说几乎是相同的情况。
我使用withCallingHandlers
将调用包装到我的函数中,提供处理警告的函数;之后将继续执行该功能。我在tryCatch
中包含了所有 ,提供了处理错误的函数。
tryCatch(
withCallingHandlers(doSomething(), warning = function(w) logWarning(w)),
error = function(e) logError(e)
)
感谢nicola对withCallingHandlers
提示的评论。