当您从c ++调用LUA函数时,会出现运行时错误LuaBind会引发luabind :: error异常,您可以捕获该异常,然后读取堆栈以查看错误是什么。我的调试器肯定会捕获此异常,但是当我让调试器继续运行时,程序将立即终止,而不是在我的代码中捕获该异常。
LuaBind包含文件中的析构函数〜proxy_member_void_caller()引发了“ call_member.hpp”异常。
简单的测试代码会出现问题。我正在将Xcode 5与LuaBind 0.9.1一起使用。
事实证明,在析构函数中引发异常是不好的做法。使用C ++ 11时,析构函数是隐式的noexcept(true)
,因此,如果发生异常,则程序终止。LuaBind在析构函数中使用异常,因此在我的现代编译器上,程序终止了。将方法签名编辑为:
~proxy_member_void_caller() noexcept(false) {}
允许您从c ++ 11中的LuaBind捕获异常。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句