如果出现错误并打印错误消息,请不要执行

时间:2016-07-24 00:07:56

标签: lua

这是非常自我解释但......

if input~=nil then
    docom=loadstring(input)
    print(docom())
else
    print("Command execution failed")
end

我在if语句中知道我的错误,但我的观点是,如果它不是有效的Lua命令而是打印错误,我怎么不运行它。如果它是有效的Lua我如何确保错误停止并且它运行打印的错误消息而不会崩溃。如果它需要os.execute()

,请使用linux btw

1 个答案:

答案 0 :(得分:1)

loadstring(或load,因为Lua 5.2)返回nil加上错误消息,如果块有语法错误。所以你可以像这样检查load的结果:

local chunk = 'foo'
local f, err = loadstring(chunk)
if not f then
    print(err)
else
    f()
end