0

我正在使用以下函数从表中选择值。表名称作为该函数的参数给出。如果表不存在,则会生成错误并停止执行。如果找不到表,我想做一些事情.在R中可能吗?像 try-catch 异常之类的东西?

library('RSQLite')
getData <- function(portfolio){
  lite <- dbDriver("SQLite", max.con = 25)
  db <- dbConnect(lite, dbname = "portfolioInfo.db")
  res <- dbSendQuery(db, paste("SELECT * from ",portfolio," ",sep=""))
  data <- fetch(res)
  return (data)
}
getData("table1")
4

1 回答 1

1

一种方法是检查返回的数据的类别。

我对 RSQLite 不熟悉,但我想如果找到表,它会返回一个数据框,如果找不到,它会返回一个文本错误?

因此,一种可能性是检查是否引发错误:

checkQueryResult<-function(data){
    if(class(data)=='data.frame') cat('SQL execution worked!')
    else cat('Something went wrong, table does not exist?')
    }

checkQueryResult(getData("table1"))

但也许 RSQLite 包已经内置了错误处理功能?

于 2013-04-10T08:48:25.860 回答