24.3.2 类库中的错误处理

Lua是安全的语言,也就是说,不管你些什么样的代码,也不管代码如何错误,你都可以根据Lua本身知道程序的行为。另外,错误也会根据Lua被发现和解释。你可以与C比较一下,C语言中很多错误的程序的行为只能依据硬件或者由程序计数器给出的错误出现的位置被解释。

不论什么时候你向Lua中添加一个新的C函数,你都可能打破原来的安全性。比如,一个类似poke的函数,在任意的内存地址存放任意的字节,可能使得内存瘫痪。你必须想法设法保证你的插件(add-ons)对于Lua来讲是安全的,并且提高比较好的错误处理。

正如我们前面所讨论的,每一个C程序都有他自己的错勿处理方式,当你打算为Lua写一个库函数的时候,这里有一些标准的处理错误的方法可以参考。不论什么时候,C函数发现错误只要简单的调用lua_error(或者luaL_error,后者更好,因为她调用了前者并格式化了错误信息)。Lua_error函数会清理所有在Lua中需要被清理的,然后和错误信息一起回到最初的执行lua_pcall的地方。

 

 

 



相关链接:
lua程序设计目录 - 中国lua开发者 - lua论坛