首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从lua访问lua堆栈

如何从lua访问lua堆栈
EN

Stack Overflow用户
提问于 2015-08-12 20:53:51
回答 1查看 290关注 0票数 2

我有一个简单的程序,它在lua文件上运行luaL_dofile (让我们称它为'script.lua',然后检查错误,然后再次运行该文件,等等。如果程序在任何时候发现错误,它会将其写入日志,然后终止。问题是,script.lua获得用户的输入,然后使用loadstring运行该字符串。我不想发生的事情(以及发生的事情)是由loadstring创建一个错误(因为用户输入了不正确的代码),那么C++程序就会发现这个错误并终止程序。在我看来,防止C++程序发现错误的最佳方法是从堆栈中删除它,但我不知道如何从script.lua中访问lua堆栈。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-12 21:28:08

很明显问题是我一直都很傻。我更改了代码,以便它检测错误,然后打印出来,而不是使用assert

Script.lua的示例:

这是不正确的:

代码语言:javascript
复制
local input = io.read()

assert(loadstring(input))()

这样做是正确的:

代码语言:javascript
复制
local input = io.read()

output, error = loadstring(input)
if (output == nil) then
    print (error)
else
    output()
end
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31975206

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档