如果有错误则不执行并打印错误消息

这很容易理解...

if input~=nil then
    docom=loadstring(input)
    print(docom())
else
    print("命令执行失败")
end

我知道我的if语句上有错误,但我的问题是如果它不是一个有效的Lua命令,我该如何不运行它并打印出错信息。如果它是有效的Lua,我如何确保错误被停止,并运行一个带有打印错误信息的程序而不崩溃。我使用的是Linux,如果需要os.execute()

点赞
用户1009479
用户1009479

loadstring(或load,自Lua 5.2起)如果代码块存在语法错误,则返回nil和错误信息。因此,您可以像这样检查load的结果:

local chunk = 'foo'
local f, err = loadstring(chunk)
if not f then
    print(err)
else
    f()
end
2016-07-24 00:55:19