应用程序中的错误处理
来源:互联网 发布:apache 插件开发 编辑:程序博客网 时间:2024/05/29 12:17
典型的情况是应用的代码运行在非保护模式下。由于应用的代码不是被Lua调用的,Lua根据上下文情况来捕捉错误的发生(也就是说,Lua不能调用setjmp)。在这些情况下,当Lua遇到像"not enough memory" 的错误,他不知道如何处理。他只能调用一个panic函数退出应用。(你可以使用lua_atpanic函数设置你自己的panic函数)
不是所有的API函数都会抛出异常,lua_open、lua_close、lua_pcall和lua_load都是安全的,另外,大多数其他函数只能在内存分配失败的情况下抛出异常:比如,luaL_loadfile如果没有足够内存来拷贝指定的文件将会失败。有些程序当碰到内存不足时,他们可能需要忽略异常不做任何处理。对这些程序而言,如果Lua导致内存不足,panic是没有问题的。
如果你不想你的应用退出,即使在内存分配失败的情况下,你必须在保护模式下运行你的代码。大部分或者所有你的Lua代码通过调用lua_pcall来运行,所以,它运行在保护模式下。即使在内存分配失败的情况下,lua_pcall也返回一个错误代码,使得lua解释器处于和谐的(consistent)状态。如果你也想保护所有你的与Lua交互的C代码,你可以使用lua_cpcall。(请看参考手册,有对这个函数更深的描述,在Lua的发布版的lua.c文件中有它应用的例子)
0 0
- 应用程序中的错误处理
- “/”应用程序中的服务器错误
- “/”应用程序中的服务器错误。
- “/”应用程序中的服务器错误
- “/”应用程序中的服务器错误。
- /”应用程序中的服务器错误。
- “/”应用程序中的服务器错误
- “/”应用程序中的服务器错误。
- “/”应用程序中的服务器错误
- 应用程序中的服务器错误
- ”/”应用程序中的服务器错误
- “/”应用程序中的服务器错误
- “/”应用程序中的服务器错误
- “/”应用程序中的服务器错误。
- “/”应用程序中的服务器错误
- 关于IIS 中 “/”应用程序中的服务器错误。<authentication mode="Forms"/> 错误的处理
- “/WebApplicationCSharp”应用程序中的服务器错误。
- 关于"“/”应用程序中的服务器错误。"
- AX 查询表字段的Lable
- 快排简单版本
- 添加回文串
- android--View自定义基础
- Linux 网络设备驱动开发(三) —— 网络设备驱动基本原理和框架
- 应用程序中的错误处理
- JSR250
- ZooKeeper系列之二:Zookeeper常用命令 .
- JVM与GC
- weui实例:城市便民自行车查询
- Xcode中利用git源码版本控制
- DMA技术
- hiho一下第二周#1014 : Trie树
- synchronized和ReentrantLock实现消费者生产者问题