如何在Lua中捕获sqlite3.open()错误

时间:2015-02-04 00:48:16

标签: sqlite lua

根据文档(http://luasqlite.luaforge.net/lsqlite3.html#sqlite3.open

  

如果出现错误,该函数返回nil,错误代码和   错误信息。

但无论我提供有效或无效的SQLite文件,我总能得到相同的结果。事实上,如果我提供不存在的文件或无效的路径,我仍然会得到相同的结果。例如:

db, code, msg = sqlite3.open("foo")) 
print(db)   -- sqlite database (0x7f9ab1628598)
print(code) -- nil
print(msg)  -- nil

我怎样才能发现这些错误?

1 个答案:

答案 0 :(得分:1)

如果文件不存在,

sqlite3.open会创建一个文件。因此,提供不存在的文件不是错误。

提供无效路径应该是错误的。调用sqlite3.open("/foo/bar")可能会给您一个错误。

另一种错误是权限错误。如果您正在运行某种Unix,则调用sqlite3.open("/foo")会给您permission denied错误。