質問が素朴に聞こえる場合はご容赦ください。ファイル接続を再帰的にオープンしようとし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:接続を閉じるには、 a を追加してそこに閉じるなどの回避策はほとんどありませんfinally
。