如何从 lua 中的异常中获取数据?

How to get data from exception in lua?

如何从 lua 中的异常中获取数据作为 table??

x * 2

-- stdin:1: attempt to perform arithmetic on a nil value (global 'x')
-- stack traceback:
--         stdin:1: in main chunk
--         [C]: in ?

如何从异常中获取信息? 这里的例子

print(getErrorInfo()['message'])
print(getErrorInfo()['line'])

-- attempt to perform arithmetic on a nil value (global 'x')
-- 1

您必须解析错误信息

local function func_to_call() x = x*2 end

local ok, err_obj = pcall(func_to_call)
if not ok then
  local line_no, err_mes = tostring(err_obj):match":(%d+): (.*)"
  local err_info = {message = err_mes, line = tonumber(line_no)}
  print(err_info.line, err_info.message)
end