2013-08-15 4 views
0

질문이 순진하게 들리면 용서하십시오. 파일 연결을 재귀 적으로 열려고 시도한 후에 tryCatch() 블록에서 closeAllConnections()을 시도하는 동안 오류가 제대로 잡히지 않은 것처럼 보입니다. Error in file(aFile, "a") : all connections are in use 및 연결을 닫지 않습니다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()}) 

위의 코드 예외 : 여기

는 샘플 코드입니다. 예상되는 동작입니까? (내가 여기 뭔가를 놓치고 있다면 저를 수정 해주십시오.)

추 신 : 연결을 닫으려면 finally을 추가하고 거기에 닫는 것과 같은 몇 가지 해결 방법이 있습니다.

답변

0

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

내부 try() 걸쇠 (및 인쇄) 오류와

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

비교하므로 외부 tryCatch는 할 수 없다. 코드에서 try()을 제거하십시오.

+0

감사합니다. 나는 그것을보아야 만했다. – mavin

관련 문제