lua xpcall函数学习
xpcall 接受两个参数:调用函数、错误处理函数。
当错误发生时,Lua会在栈释放以前调用错误处理函数,因此可以使用debug库收集错误相关信息。
常用的debug处理函数:debug.debug和debug.traceback,
前者给出Lua的提示符,你可以自己动手察看错误发生时的情况;
后者通过traceback创建更多的错误信息,也是控制台解释器用来构建错误信息的函数。
你可以在任何时候调用debug.traceback获取当前运行的traceback信息。
- function traceback( msg )
- print("----------------------------------------")
- print("LUA ERROR: " .. tostring(msg) .. " ")
- print(debug.traceback())
- print("----------------------------------------")
- end
- local function main()
- -- ....
- print("hello")
- end
- xpcall(main, traceback)