【发布时间】:2011-01-10 15:43:06
【问题描述】:
如果发生错误情况,如何编写允许我在代码中执行不同路径的 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)
但我真正想做的是在pJohnson(.18, parms) 返回错误时执行函数alternativeFunction()。
似乎withCallingHandlers() 函数应该可以帮助我,但我不知道如何捕获错误并使其仅在出现错误情况下运行alternativeFunction()。
【问题讨论】:
标签: r error-handling