如何编写 R 代码,以便在发生错误情况时能够在代码中执行不同的路径?我正在使用一个容易引发错误的函数。当它遇到错误条件时,我想执行不同的函数。这是一个具体的例子:
require(SuppDists)
parms <- structure(list(gamma = -0.841109044800762, delta = 0.768672140584442,
xi = -0.359199299528801, lambda = 0.522761187947026, type = "SB"), .Names = c("gamma",
"delta", "xi", "lambda", "type"))
pJohnson(.18, parms)
pJohnson 函数应该失败并出现以下错误:
Error in pJohnson(0.18, parms) :
Sb values out of range.
我可以使用以下方法使错误消失:
try( pJohnson(.18, parms), silent=T)
但我真正想做的是执行该函数alternativeFunction()
if pJohnson(.18, parms)
返回错误。
似乎是withCallingHandlers()
函数应该可以帮助我,但我不知道如何捕获错误并使其运行alternativeFunction()
仅在出现错误情况时。