2016-06-19 14 views
4

Ich bin neu in Lua.Lua Fehlerbehandlung

Ich habe versucht, http://keplerproject.github.io/luafilesystem/examples.html zu verwenden, und es wirft einen Fehler auf unzugänglichen Verzeichnissen.

Dies scheint durch luaL_errorhttps://github.com/keplerproject/luafilesystem/blob/master/src/lfs.c#L563

Wie kann ich fangen diesen Fehler verursacht werden? http://www.tutorialspoint.com/lua/lua_error_handling.htm schlägt pcall, aber das ist nicht das Skript stoppt vor dem Tod:

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

Antwort

5

pcall(lfs.dir('/etc/passwd')) schlägt fehl, da der Fehler außerhalb von pcall ausgelöst wird (wenn der Parameter für pcall berechnet). Sie müssen

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

Hinweis verwenden, dass die zu lfs.dir gebenen Parameter zu pcall gegeben sind, nicht zu lfs.dir.