R中的db操作异常处理

时间:2013-04-10 05:22:23

标签: r sqlite exception-handling try-catch

我正在使用以下函数从表中选择值。表名作为该函数的参数给出。如果表不存在,则生成错误并执行stoped.I想要做表格的事情没找到。是否有可能在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")

1 个答案:

答案 0 :(得分: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包已经内置了错误处理内容?