检测或阻止调用不存在的函数的函数定义

时间:2015-03-07 14:45:08

标签: r error-handling

R允许以下内容无怨言:

f <- function(x) {
    function_that_does_not_exist(x)
}

只有在调用f()时才会出现错误。如何更早地检测到这些错误?

我意识到具有这种后期绑定行为的语言允许您稍后定义缺失的函数,但我很乐意放弃该功能以进行早期错误检测。

1 个答案:

答案 0 :(得分:1)

包实用程序可能会捕获您想要捕获的内容。特别是如果你在函数中添加一个非常重要的例子。

我在包含您的功能的包上运行R CMD check并报告:

`* checking R code for possible problems ... NOTE
f: no visible global function definition for
  ‘function_that_does_not_exist’
* checking Rd files ... WARNING`

然后(我在路径文件中以f(1)为例。)

 * checking examples ... ERROR
 Running examples in ‘fpackage-Ex.R’ failed
 The error most likely occurred in:

 > ### Name: f
 > ### Title: f function
 > ### Aliases: f
 > 
 > ### ** Examples
 > 
 > f(1)
Error in f(1) : could not find function         
"function_that_does_not_exist"
Execution halted     

我不确定这是你问题的答案。