我想运行一段有时会产生错误的代码。
例如:
a<-matrix(NA,ncol=1,nrow=sample(1:5,1))
a[sample(1:5,1),1]<-10
我想重复这些命令,直到它们运行没有错误。
是否可以将它嵌入到while()循环中,该循环继续运行直到出现错误,并且当两行可以无误地执行时停止?
答案 0 :(得分:5)
tryCatch
的语法类似于
result = tryCatch({
expr
}, warning = function(warning-condition) {
warning-handler-code
}, error = function(error-condition) {
error-handler-code
}, finally={
cleanup-code
})
您可以将代码封装在tryCatch
内的无限循环中
while(1==1)
这两个概念可以帮助您解决问题。使用这些,您可以将其写为
boolFalse<-F
while(boolFalse==F)
{
tryCatch({
a<-matrix(NA,ncol=1,nrow=sample(1:5,1))
a[sample(1:6,1),1]<-10;
boolFalse<-T
},error=function(e){
},finally={})
}