lua xpcall函数学习

xpcall 接受两个参数:调用函数、错误处理函数。

当错误发生时,Lua会在栈释放以前调用错误处理函数,因此可以使用debug库收集错误相关信息。

常用的debug处理函数:debug.debugdebug.traceback

前者给出Lua的提示符,你可以自己动手察看错误发生时的情况;

后者通过traceback创建更多的错误信息,也是控制台解释器用来构建错误信息的函数。

你可以在任何时候调用debug.traceback获取当前运行的traceback信息。

  1. function traceback( msg )  
  2.     print("----------------------------------------")  
  3.     print("LUA ERROR: " .. tostring(msg) .. " ")  
  4.     print(debug.traceback())  
  5.     print("----------------------------------------")  
  6. end  
  7.   
  8. local function main()  
  9.     -- ....  
  10.     print("hello")  
  11. end  
  12.   
  13. xpcall(main, traceback) 
原文地址:https://www.cnblogs.com/aibox222/p/9050645.html