【发布时间】:2017-07-19 07:22:05
【问题描述】:
我需要将警告转换为错误,以便能够在上游进一步处理它(警告被吞没在中间的某个地方,我无法控制;错误不是)。为此,我正在执行以下操作:
warning_to_error = function (expr)
withCallingHandlers(expr, warning = stop)
这很好用:
> warning_to_error(warning('foobar'))
Error in withCallingHandlers(expr, warning = stop) : foobar
不幸的是,这使得错误完全无法捕获:
> try(warning_to_error(warning('foobar')))
Error in withCallingHandlers(expr, warning = stop) : foobar
In my real situation,在我的warning_to_error 和try 之间有好几层(包括消除警告的逻辑)。如何使调用处理程序引发的错误可捕获?不幸的是,我不能像in another Stack Overflow question 所述使用重启,因为stop 没有定义重启,而且我再次无法控制执行捕获的代码。
【问题讨论】:
标签: r error-handling