在发现错误后继续运行脚本。

在编程中,最让人恼火的事情之一就是一个简单的语法错误会导致整个程序崩溃。例如,如果我这样做:

require 'moduleWithSyntaxError' --有语法错误
require 'fullyFunctioningModule' --无语法错误

foo = faultyClass.new() --类定义中有语法错误
bar = normalClass.new() --无语法错误

然后,如果程序在错误的模块中发现了语法错误,它就会退出,如果在错误的类中发现了语法错误,它也会退出。这就带来了我的问题,是否有任何方法可以检测是否有语法错误,并使用该信息来不调用 faultyClass.new(),类似于异常的语法?我正在寻找类似于这样的东西(是的,这非常类似于 C ++ 异常):

try()
    require 'moduleWithSyntaxError'
catch (exception)
    print (exception.what())
end
点赞
用户2546626
用户2546626

简短明了的回答:pcall

这是 Lua 中的异常处理。

2015-08-14 14:26:34
用户2226988
用户2226988

如果你真的在谈论语法错误,那么只要在你的项目中运行 luac 即可告诉你是否有错误。(你可以自动化这个过程)

除非你无法控制项目运行的模块的源代码,否则你不需要利用异常处理来检测语法错误。

2015-08-14 15:47:28