lua中怎么捕获错误异常信息

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了lua中怎么捕获错误异常信息相关的知识,希望对你有一定的参考价值。

宿主程序使用 lua_pcall() lua_pcallk()捕获lua产生的异常。请自行百度这两个函数。 在lua内部函数出错会返回一个错误状态+err字符串,通过if判断函数返回值进行错误处理。 参考技术A xpcall 为什么这个方法不能满足需求 你使用xpcall 不是可以输出异常信息吗 然后你把debug.traceback()的信息写入文件不是就行了
main.lua中__G__TRACKBACK__里插入
可以将错误日志写入文件
也可以上报到服务器
package.path = package.path .. ";.app/protobuf/?.lua;./scripts/app/protobuf/?.lua;"
package.cpath = package.cpath .. ';../protobuf/?.so'
print(package.path)
function __G__TRACKBACK__(errorMessage)
print("__G__TRACKBACK__111")
local path = CCFileUtils:sharedFileUtils():getWritablePath().."log.txt"
print(path)
io.writefile(path, "\r\n"..errorMessage, "a+b")
if "ASSERT FAILED ON LUA EXECUTE: CCHTTPRequest::getResponseString() - request not completed" ~= tostring(errorMessage) and
"ASSERT FAILED ON LUA EXECUTE: Request not completed" ~= tostring(errorMessage) then
print("----------------------------------------")
print("LUA ERROR: " .. tostring(errorMessage) .. "\n")
print(debug.traceback("", 2))
print("----------------------------------------")
end
end

local function startGame( ... )
collectgarbage("setpause", 100)
collectgarbage("setstepmul", 5000)
require("app.MyApp").new():run()
end
xpcall(startGame,__G__TRACKBACK__)
startGame()

新人求教,请问Thinkphp 中怎么捕获异常,自己进行处理

参考技术A 用debug和trace,在配置中开启后就会在右下角有一个图标,点开查看错误就可以了。

希望我的回答可以帮到你,有什么问题可以追问。
参考技术B 开启debug和trance显示本回答被提问者采纳

以上是关于lua中怎么捕获错误异常信息的主要内容,如果未能解决你的问题,请参考以下文章

JQuery $.ajax 捕获异常信息

如何在 python 中捕获异常(在 C++ 中引起)

python常见异常和异常捕获

向未捕获的异常添加额外信息

python3.5怎么输出异常的信息?

winform程序捕获全局异常,对错误信息写入日志并弹窗