【发布时间】:2019-09-19 17:59:25
【问题描述】:
some_f <- function() {
stop("Error")
}
t2 <- withCallingHandlers({some_f()},
error=function(err){print("got here")},
warning=function(warn){return(NULL)})
输出:
[1] "got here"
Error in some_f() : Error
3. stop("Error")
2. some_f()
1. withCallingHandlers({
some_f()
}, error = function(err) {
print("easldfa") ...
错误功能被激活,因为“到达这里”被打印出来了。但它仍然会抛出错误。它不应该那样做。
【问题讨论】:
-
错误函数被激活不是因为“到了这里”被打印出来但是因为你将
t2分配给some_f函数输出会抛出一个错误消息@ 987654325@。就像在try-catch中一样,在这种情况下withCallingHandlers将执行error函数调用中指定的任何操作,同时抛出some_f()函数的停止错误消息。我在这里错过了什么吗?
标签: r