Sea*_*son 5 c++ lua exception-handling luabind c++11
当您从c ++调用LUA函数并且存在运行时错误时,LuaBind会抛出一个luabind :: error异常,您可以捕获该异常,然后读取堆栈以查看错误是什么.我的调试器肯定会捕获此异常,但是当我让调试器继续运行时,程序会立即终止,而不是在我的代码中捕获异常.
在析构函数~sexy_member_void_caller()的LuaBind包含文件的"call_member.hpp"中抛出异常.
简单的测试代码会出现问题.我正在使用Xcode 5和LuaBind 0.9.1.
事实证明,在析构函数中抛出异常是不好的做法.使用C++ 11析构函数是隐式的noexcept(true),因此如果发生异常,程序将终止.LuaBind在析构函数中使用异常,因此在我的现代编译器中程序终止.将方法签名编辑为:
~proxy_member_void_caller() noexcept(false) {}
Run Code Online (Sandbox Code Playgroud)
允许您在c ++ 11中捕获LuaBind中的异常.
| 归档时间: |
|
| 查看次数: |
615 次 |
| 最近记录: |