为什么有的错误信息LUA没有打印

1.接口使用问题

提供错误返回的接口是lua_pcall ,看看是不是调用了lua_call这个接口

函数原型:

void lua_call (lua_State *L, int nargs, int nresults);//nargs参数个数,nresults返回值个数。

void lua_pcall(lua_State *L,int nargs, int nresults,int nerrfunc);//多一个参数,处理错误代码返回。

void lua_cpcall(lua_State *L,int nargs, int nresults,int nerrfunc,void* ud)//传递用户自定义的数据结构的指针。


2.没有处理协程返回的错误

参考:http://lua-users.org/wiki/CoroutinesTutorial

coroutine.resume会返回两个参数,第一个是调用状态,第二个是错误信息。

加入调用状态不为TRUE,则这个协程执行失败,用第二个错误信息打印出来。


妈蛋,被这个错误信息坑出翔了,开始我一直觉得是LUA自身对于一些没法检测错误的信息不报错处理的问题。

然后越想越不对劲,有几次错误查询都找了N久,然后就想到这样一个完善的语言不应该有这个问题才对。

然后我就去找LUA的API接口,找到了PCALL,这个是对的没问题。

然后想了下好像所有错误都是在回调的情况发生,回调是因为注册了函数。才找到一个直接拿别人来用的小模块的协程事件这个玩意。不查不知道一查吓一跳,他竟然把错误信息给无视了!!并且不返回给接口,相当于直接扔掉了错误。

全国用这个小模块的人没有一万也有几千,这么多人都不反馈一下?

不成大气的码农们啊!!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容