2016-06-19 5 views
4

Я новичок в lua.Обработка ошибок Lua

Я попытался использовать http://keplerproject.github.io/luafilesystem/examples.html , и он выдает сообщение об ошибке в недоступных каталогах.

Это, как представляется, вызваны luaL_errorhttps://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 

ответ

5

pcall(lfs.dir('/etc/passwd')) терпит неудачу, потому что ошибка срабатывает вне pcall (когда параметр PCALL рассчитывается). Вы должны использовать

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

Обратите внимание, что параметры, передаваемые lfs.dir отдаются pcall, не lfs.dir.

Смежные вопросы