如何捕获 Lua 中的 sqlite3.open() 错误
How to catch sqlite3.open() errors in Lua
根据文档 (http://luasqlite.luaforge.net/lsqlite3.html#sqlite3.open)
In case of an error, the function returns nil, an error code and an
error message.
但是无论我提供有效还是无效的 SQLite 文件,我总是得到相同的结果。事实上,如果我提供一个不存在的文件或一个无效的路径,我仍然会得到相同的结果。例如:
db, code, msg = sqlite3.open("foo"))
print(db) -- sqlite database (0x7f9ab1628598)
print(code) -- nil
print(msg) -- nil
如何捕获这些错误?
sqlite3.open
如果文件不存在则创建一个文件。所以,提供一个不存在的文件不是错误。
提供无效路径应该是错误的。调用 sqlite3.open("/foo/bar")
可能会出错。
另一种错误是权限错误。如果您是 运行 某种类型的 Unix,则调用 sqlite3.open("/foo")
应该会给您一个 permission denied
错误。
根据文档 (http://luasqlite.luaforge.net/lsqlite3.html#sqlite3.open)
In case of an error, the function returns nil, an error code and an error message.
但是无论我提供有效还是无效的 SQLite 文件,我总是得到相同的结果。事实上,如果我提供一个不存在的文件或一个无效的路径,我仍然会得到相同的结果。例如:
db, code, msg = sqlite3.open("foo"))
print(db) -- sqlite database (0x7f9ab1628598)
print(code) -- nil
print(msg) -- nil
如何捕获这些错误?
sqlite3.open
如果文件不存在则创建一个文件。所以,提供一个不存在的文件不是错误。
提供无效路径应该是错误的。调用 sqlite3.open("/foo/bar")
可能会出错。
另一种错误是权限错误。如果您是 运行 某种类型的 Unix,则调用 sqlite3.open("/foo")
应该会给您一个 permission denied
错误。