【问题标题】:Continue running a script after finding an error发现错误后继续运行脚本
【发布时间】:2015-08-14 09:32:45
【问题描述】:

关于错误的最烦人的事情之一是一个简单的语法错误会杀死我的所有程序。例如,如果我这样做:

require 'moduleWithSyntaxError' --Has a syntax error
require 'fullyFunctioningModule' --No syntax errors

foo = faultyClass.new() --Has syntax error inside the class definition
bar = normalClass.new() --No syntax errors

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

try()
    require 'moduleWithSyntaxError'
catch (exception)
    print (exception.what())
end

【问题讨论】:

标签: lua


【解决方案1】:

简短的回答:pcall

这是 Lua 中的异常处理。

【讨论】:

    【解决方案2】:

    如果您真的在谈论语法错误,那么只需在 Lua 上运行 luac 即可告诉您项目中的每个文件是否有错误。 (你可以自动化。)

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

    【讨论】:

      猜你喜欢
      • 2021-05-24
      • 2020-01-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多