我有以下 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/