我正在为 R 函数编写一个测试用例,该用例测试是否在函数中的某个点正确地抛出和捕获了错误,并且当在 withCallingHandlers 执行期间抛出错误时,我在继续测试时遇到了一些麻烦(...)。我正在使用这种方法:
counter <- 0
withCallingHandlers({
testingFunction(df0, df1)
testingFunction(df2, df3)
testingFunction(df4, df5)
}, warning=function(war){
print(paste(war$message))
}, error=function(err){
print(paste(err$message))
if(err$message == paste("The function should throw this error message",
"at the right time.")){
counter <<- counter + 1
}
})
stopifnot(counter == 2)
我遇到的问题是脚本在(成功)捕获第一个错误后退出,我不确定如何处理错误,以便在捕获错误后,withCallingHandlers 只是继续执行下一部分。我知道它与重启对象有关,但我不确定如何正确使用它们。有谁知道我可以如何操作上面的代码,以便 withCallingHandlers(...) 的执行即使在捕获错误时也能继续?