我有一个包含在 tryCatch 语句中的 R 代码块。该块中的任何行都可能引发警告或错误。当被捕获时,我有警告和错误的处理程序,它们在两种情况下都执行日志记录,并在错误情况下退出处理。
但在警告的情况下,我只想记录警告,并继续正常执行。目前,当警告被捕获时,它会被记录下来,但执行也会停止。是否有一种简单的方法可以实现此功能?
不确定这是否是最惯用的解决方案,但在几乎相同的情况下使用tryCatch和的组合对我来说很有效。withCallingHandlers
我用 包装了对函数的调用withCallingHandlers,提供了一个处理警告的函数;之后该函数将继续执行。我将所有这些都封装在 中tryCatch,提供一个处理错误的函数。
tryCatch(
withCallingHandlers(doSomething(), warning = function(w) logWarning(w)),
error = function(e) logError(e)
)
Run Code Online (Sandbox Code Playgroud)
感谢评论中的尼古拉提供的提示withCallingHandlers。
| 归档时间: |
|
| 查看次数: |
1030 次 |
| 最近记录: |