Я заметил, что tryCatch функция (может быть функцией из библиотеки, которая не может изменять исходный код), которая уже защищена попыткой, на самом деле не улавливает ошибку.В результате я в конечном итоге проверяю «try-error» после каждого неопределенного tryCatch.Любые комментарии, если есть обходной путь, который я пропускаю?
Воспроизводимый пример, где 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)