Ich habe die LuaJSON angenommen, um JSON zu parsen. Der Parse-Aufruf scheint wie folgt aus:Wie erhalte ich eine Fehlermeldung von der Third-Party-Library in Lua?
-- file.lua
local res = json.decode.decode(json_str)
if res == nil then
throw('invalid JSON')
end
...
Aber wenn die json_str
schlecht formatiert ist, wird die decode()
innerhalb LuaJSON zu stoppen und unterbrechen die Ausführung von file.lua. Ich möchte, dass der Kontrollfluss stattdessen zu meiner Funktion zurückkehrt, sodass ich eine benutzerdefinierte Fehlerbenachrichtigung bereitstellen kann.
Ich habe die LuaJSON-APIs durchsucht, und es gibt keine Rückruf-ähnliche Fehlerbehandlung. Ich möchte wissen, gibt es einen Lua-Mechanismus, der es mir erlaubt, Fehler innerhalb von LuaJSON innerhalb von file.lua zu behandeln?
Wahrscheinlich, 'wenn Erfolg und res dann 'wäre richtiger? –
@Egor Skriptunoff Das hängt von der Schnittstelle des 'decode' Aufrufes ab. Ich habe nur versucht, die Verwendung von 'pcall' zu veranschaulichen. – ComicSansMS
IMO, die Zeile 'if res == nil then' in der Frage ist ziemlich klar über diese Funktion von 'decode' Aufruf. –