gpt4 book ai didi

r - tryCatch :Error not caught

转载 作者:行者123 更新时间:2023-12-03 08:57:54 31 4
gpt4 key购买 nike

如果这个问题听起来很幼稚,请原谅。
在尝试递归打开文件连接后尝试在closeAllConnections()块中使用tryCatch()时,似乎未正确捕获该错误。

这是示例代码:

fileOpenRec<-function(iter){
if(iter<130){
try(
{
aFile="file1.txt"
fileCon<-file(aFile, "a")
fileOpenRec(iter+1)
}
)
}
}

tryCatch(fileOpenRec(1), error=function(e){print("Error!");closeAllConnections()})

上面的代码将抛出: Error in file(aFile, "a") : all connections are in use,并且不会关闭连接。
这是预期的行为吗? (我对此表示怀疑,如果我在这里遗漏了一些东西,请纠正我)

PS:关闭连接我很少有解决方法,例如添加 finally并将其关闭。

最佳答案

比较

> tryCatch({ stop("oops"); 1 }, error=function(err) "caught")
[1] "caught"


> tryCatch({ try(stop("oops")); 1 }, error=function(err) "caught")
Error in try(stop("oops")) : oops
[1] 1

内部 try()捕获(并打印)错误,因此外部 tryCatch与无关。从您的代码中删除 try()

关于r - tryCatch :Error not caught,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18262991/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com