gpt4 book ai didi

c++11 - 在Lua中执行任意字符串时如何处理错误?

转载 作者:行者123 更新时间:2023-12-02 07:53:01 26 4
gpt4 key购买 nike

我在这里追求绝对的极简主义。 (自从我使用 Lua C API 以来已经有一段时间了。)

#include <lua.hpp>
#include <iostream>
#include <string>
using namespace std;

int main(int argc, char** argv)
{
lua_State* state = luaL_newstate();
luaL_openlibs(state);

string input;

while (getline(cin, input))
{
auto error = luaL_dostring(state, input.c_str());

if (error)
{
cerr << "Lua Error: " << lua_tostring(state, -1) << '\n';
lua_pop(state, 1);
}
}

lua_close(state);
return 0;
}

只要我给它提供完美的 Lua,这个程序就可以正常工作。但是,如果我输入错误的内容(例如 asdf()),程序就会崩溃!为什么它不能优雅地处理我的错误?

我之前尝试过中断通话。它在调用 lua_pcall 本身时崩溃。我从来没有越过那条线。

最佳答案

二进制下载(我相信是 5.2.1)有一个错误,已在 5.2.3 中得到纠正。我从源代码重建了库,现在我的程序运行良好。

关于c++11 - 在Lua中执行任意字符串时如何处理错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22696286/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com