错误处理
wiki
本页面包含有关 Lua 错误处理的链接和讨论,包括异常处理。
《Programming in Lua》和《Beginning Lua Programming》(参见
LuaBooks
)中包含关于错误处理的章节。
Lua 参考手册 5.1
背景讨论:
[2.7. Lua 中的错误处理]
,
[3.6. C 中的错误处理]
引发错误:
[error]
,
[lua_error]
(C 版本,带错误对象),
[luaL_error]
(C 版本,带 printf 风格格式字符串)
有条件地引发错误:
[assert]
- 另请参阅:
[此函数命名]
捕获函数调用中的错误:
[pcall]
,
[xpcall]
(带错误处理函数)
捕获未处理的错误:
[lua_atpanic]
获取堆栈跟踪:
[debug.traceback]
,
[luaL_traceback]
(C 版本, 5.2-alpha)
在 C 中为错误的参数引发错误:
[luaL_argerror]
和 luaL_check* 函数,
[luaL_typerror]
(luaL_typerror 在
LuaFiveTwo
中已弃用)
[Lua 中的异常模式,Lua Workshop 2006]
,作者:
JohnBelmonte
《Lua Programming Gems》中的“第 13 章:Lua 中的异常”(参见
LuaBooks
),作者:
John Belmonte
,指出了语言的局限性,实现了一个简单的 try/catch 函数,讨论了使用(非字符串)错误对象的问题,并实现了一个类 D 的作用域管理器(try/catch 的替代方案)。
FinalizedExceptions
- 讨论了带 protect 和 newtry 函数的异常方案
CatchingLuaExceptions
- 一组便于在 C 和 C++ 中进行 Lua 异常处理的补丁
LuaAndExceptionsHackingNotes
ErrorHandlingBetweenLuaAndCplusplus
- 将 Lua 与 C++(而非 C)混合使用的相关问题
LuaCarp
- 用 Lua 实现的 Perl Carp(透明地处理错误级别)
ResourceAcquisitionIsInitialization
- 在作用域退出时自动释放已获取的资源,RAII
ResumableVmPatch
- 支持跨 pcall 的 yield(另请参阅
FeatureProposals
)
RecentChanges
·
preferences
编辑
·
历史
最后编辑于 2015 年 5 月 14 日上午 6:51 GMT
(差异)