0

dofile("x/y/m.lua")

dofile("x/y/p.lua")

如果 m.lua 由于某些问题而失败,p.lua 将根本无法运行,请给我一些解决方案,即使第一个文件失败,我也可以运行这两个文件并且两个文件都有日志

4

2 回答 2

1

尝试

function dofile(name)
  local f,err=loadfile(name)
  if f==nil then print(err) end
  local ok,err=pcall(f)
  if not ok then print(err) end
end
于 2013-04-30T12:08:32.667 回答
0

使用pcall捕捉 Lua 错误,可能是这样的:

local success, result = pcall(dofile, "foo.lua")

如果success为 false,则函数失败,错误消息将在result. 如果success为真,则返回值dofile将在result. 您可以添加其他result变量。例如:

local success, result1, result2, result3 = pcall(dofile, "foo.lua")
于 2013-04-30T18:47:43.783 回答