Lua错误处理

我是Lua新手。

我试着使用 http://keplerproject.github.io/luafilesystem/examples.html 但是当处理不可访问的目录时它会抛出一个错误。

这似乎是由 luaL_error 引起的https://github.com/keplerproject/luafilesystem/blob/master/src/lfs.c#L563

我该如何捕捉这个错误? http://www.tutorialspoint.com/lua/lua_error_handling.htm 建议使用 pcall,但是它并没有阻止脚本的终止:

pcall(lfs.dir('/etc/passwd')) #this fails to handle the not a directory error
点赞
用户1442917
用户1442917

pcall(lfs.dir('/etc/passwd')) 失败了,因为错误是在 pcall 外部触发的(在计算 pcall 的参数时)。你需要使用下面的代码:

local ok, res = pcall(lfs.dir, '/etc/passwd')

请注意,传递给 lfs.dir 的参数是给 pcall,而不是给 lfs.dir

2016-06-19 23:59:08