在执行lua脚本时如何统一捕获异常
来源:互联网 发布:南昌网络教育 编辑:程序博客网 时间:2024/06/11 06:05
相信很多lua开发者都知道,在lua里面,可以使用pcall
函数来捕获异常,但pcall
只能捕获函数执行过程中抛出的异常,如果我想捕获整个脚本执行过程中的异常呢?方法也是有的,我们可以使用loadfile
这个函数来实现,并且需要加多一个入口脚本。
业务脚本(hello_world.lua)
-- 使用error函数抛出一个异常error({code = 10001, msg = "发生错误了!"})
入口脚本(index.lua)
local cjson = require "cjson"local func = loadfile("/path/to/hello_world.lua")local status,err = pcall(func) -- 把整个脚本当作函数来执行if not status then local code = err.code and tonumber(err.code) or 500 local msg = err.msg and tostring(err.msg) or "Unknown error occurred" print(cjson.encode({code = code,msg = msg})) -- 输出{"code":10001,"msg":"发生错误了!"}end
有了入口脚本之后,我们执行的时候就直接执行index.lua,然后它会自己去执行hello_world.lua里的代码,并且捕获所有异常。
0 0
- 在执行lua脚本时如何统一捕获异常
- unity3d中的lua脚本异常捕获
- 如何让Delphi在调试运行程序时正确执行捕获异常
- java异常捕获,统一捕获
- Winform 统一捕获异常,捕获未处理异常
- lua捕获异常(tryCatch封装)
- C#_WinForm 统一捕获未处理的异常
- Spring MVC使用之统一异常捕获
- HandlerExceptionResolver统一捕获系统异常做处理
- iOS 捕获全局异常,统一收集
- 在Linux中执行.sh脚本,异常
- 如何在C++中集成Lua脚本
- redis执行Lua脚本
- redis执行lua脚本
- 如何捕获程序异常?
- js如何捕获异常
- JavaScript 如何捕获异常
- 如何在脚本中执行scp时自动输入密码
- Rxjava简介(一)
- 如何根据SeetaFaceDetection教程创建自己的工程
- DAY18:leetcode #43 Multiply Strings
- jquery的ajax中dataType="json",返回值判断是否为空,是否为null
- window对象的属性和方法
- 在执行lua脚本时如何统一捕获异常
- JAVA反射总结(不错)
- tcp窗口滑动以及拥塞控制
- C# 二进制,十进制,十六进制 互转
- 杂文
- 快速自动更新Android Studio版本
- Mac OSX 快捷键&命令行
- Struts2 Junit测试
- git中的版本库,暂存区和工作区