local a = {1,2,3,4}
print(pcall(#a[1])) -- still error
pcall()
如果错误则返回false
,true
如果一切正常,该怎么办?
答案 0 :(得分:6)
-- Example 1.
a = {1,2,3,4}
function check()
return #a[1]
end
print(pcall(check)) -- false | attempt to get length of field '?' (a number value)
local v, massage = pcall(check)
print(v, massage) -- "v" contains false or true, "massage" contains error string
-- Example 2.
-- Passing function and parameter...
function f(v)
return v + 2
end
a, b = pcall(f, 1)
print(a, b) --> true | 3
a, b = pcall(f, "a")
print(a, b) -- false | attempt to perform arithmetic on local 'v' (a string value)
要使pcall()
起作用,需要使用括号传递函数。
答案 1 :(得分:1)
pcall中第一个传入的参数是函数名,你在示例中有的是数组,不合法我害怕