执行时:
my_env <- new.env(parent = emptyenv())
test <- purrr::safely(get("meta", envir = my_env))
我收到以下错误:
Error in get("meta") : object 'meta' not found
在环境中未定义meta
变量的意义上,该错误为正确,但我的想法是safely
将返回{{1 }} 在这种情况下。
我可以通过首先使用NULL
进行检查来解决该错误,但我很好奇exists
为何失败。我认为safely
等同于safely
是错误的吗?
答案 0 :(得分:1)
您误解了safely
函数的操作。它实际上是成功的。如果您检查过test
的值,则应该看到:
> test
[1] "Error in get(\"meta\", env = my_env) : object 'meta' not found\n"
attr(,"class")
[1] "try-error"
attr(,"condition")
<simpleError in get("meta", env = my_env): object 'meta' not found
要禁止在控制台上看到错误消息,您可以使用options(show.error.messages = FALSE)
关闭报告,也可以重定向stderr()
的目标。