这是非常自我解释但......
if input~=nil then
docom=loadstring(input)
print(docom())
else
print("Command execution failed")
end
我在if语句中知道我的错误,但我的观点是,如果它不是有效的Lua命令而是打印错误,我怎么不运行它。如果它是有效的Lua我如何确保错误停止并且它运行打印的错误消息而不会崩溃。如果它需要os.execute()
答案 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