我有以下 R 代码:

tryCatch( {pre_symbol=read.table(file=filePre,header=FALSE,sep=",")}
         , error = function(e) {loadError = TRUE} )

当输入文件 (filePre) 为空时,tryCatch 不会将全局变量 loadError 设置为 TRUE。这会在我的代码中产生问题(当 loadError==false 时执行的代码假定 filePre 不为空时),tryCatch 应该阻止这些问题。但是,当我删除 tryCatch 语句并尝试通过 read.Table 加载时,出现错误



在这种情况下这是预期的。我不知道为什么这不起作用。它适用于我集中的大多数其他文件。

最佳答案

您应该在此处使用全局赋值运算符 <<- ,例如:

loadError = FALSE
toto <- function(){

  tryCatch(stop("dummy error"),error=function(e)loadError <<- TRUE)
}

> toto()
> loadError
[1] TRUE

关于r - R 中的 tryCatch 无法正常工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19394886/

10-13 04:39