当函数 sum()
失败时,我正在尝试使用 possibly()
打印参数 x
作为消息。
library(purrr)
t <- function(x) {
p <- possibly(sum, otherwise = message(x))
p(x)
}
但是,我不希望下面的代码检索任何消息,因为 sum()
不会失败:
> t(1)
1
[1] 1
相反,下面的脚本按预期工作:sum() 失败,因此 t()
打印消息 'a'
> t('a')
a
NULL
最佳答案
如另一个答案所述,可能
只是做了一些与您想要的完全不同的事情。
你想要的是 tryCatch
(base R 的一部分):
t <- function(x) {
tryCatch(sum(x), error = function (.) message(x))
}
t(1)
# [1] 1
t('a')
# a
关于r - 失败时如何打印函数的参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70186719/