local a = {1,2,3,4}
print(pcall(#a[1])) -- still error
Sollte pcall()
Rückkehr false
wenn Fehler und true
wenn alles gut? Wie kann ich Fehler umgehen?Lua, Fehlerbehandlung pcall()
local a = {1,2,3,4}
print(pcall(#a[1])) -- still error
Sollte pcall()
Rückkehr false
wenn Fehler und true
wenn alles gut? Wie kann ich Fehler umgehen?Lua, Fehlerbehandlung pcall()
-- 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)
Für pcall()
funktioniert, muss Funktion mit aus Klammern übergeben werden.
Der erste in Parameter in pcall gebene Funktionsname ist Array, was Sie in diesem Beispiel, nicht legal Ich fürchte