使用内部使用try的函数的tryCatch不会以任何方式捕获错误

时间:2018-12-03 12:42:06

标签: r

我注意到tryCatch已经被try保护的函数(可以是来自库的函数,所以不能修改源代码)实际上并不能捕获错误。结果,在每次不确定的tryCatch之后,我最终都要检查“ try-error”。如果有任何解决方法我没有任何评论?

可重现的示例,其中失败时的foo是try-error对象,而不是我希望的-1或-2:

foo <- tryCatch({
  try(notTheDroidzYouAreLookingFor())
}, warning = function(w) {
  print("zwarning")
  -2
}, error = function(e) {
  print("zerror")
  -1
})
print(foo)
# ending up doing following all the time
if (inherits(foo, "try-error")) {
  print("tryCatching a try and then checking for try-error makes jack a dull boy")
  foo <- -3
}
print(foo)

0 个答案:

没有答案