Lua:如何使用pcall来检测循环是否崩溃

local test = function()
    local a = {
    'test1',
    'test2',
    }
    for i = 1, 3 do
        print(a[i]) -- 这将导致一个错误,因为该表只有2个值
    end
end

如果我在循环中使用test(),有没有一种方法来检测循环是否崩溃

点赞
用户14208240
用户14208240

循环不会崩溃。它只会打印 nil。 尽管你可以使用元表来查看循环是否尝试索引不存在的内容:

local a = {
    'test1',
    'test2',
}

setmetatable(a, {
    __index = function()
       return "Attempt to index with a nil value";
    end
})

for i = 1, 3 do
    print(a[i])
end
2020-12-27 02:23:14