From: Raphaƫl Jakse Date: Sun, 5 Apr 2020 08:22:07 +0000 (+0200) Subject: Handle JSON errors in a separate function X-Git-Url: https://secure.softndesign.org/git/?a=commitdiff_plain;h=d5fd4c22a8cebce2199c8692f8bd9f6e25e4c184;p=trivabble.git Handle JSON errors in a separate function --- diff --git a/trivabble.js b/trivabble.js index 20c91c1..d131873 100644 --- a/trivabble.js +++ b/trivabble.js @@ -470,6 +470,11 @@ ); } + function jsonError(json, e) { + console.error("An error ocurred while parsing this JSON message:", json); + fatalError(e); + } + function setRackCell(index, letter) { setTileParent(playerLetters[index], letter); } @@ -680,6 +685,14 @@ } } + function parseAndHandleReceivedData(r) { + try { + handleReceivedData(JSON.parse(r)); + } catch (e) { + jsonError(r, e); + } + } + function send(data) { if (!pollingReady && ((data.cmds && data.cmds.length) && data.cmds[0].cmd !== "joinGame")) { sendCmds(); @@ -713,7 +726,7 @@ es.onmessage = function (e) { pollingReady = true; - handleReceivedData(JSON.parse(e.data)); + parseAndHandleReceivedData(e.data); }; es.onerror = retryPolling; @@ -758,14 +771,10 @@ currentIndex = end; expectedLength = 0; } catch (e) { - console.error( - xhr.responseText.substring( - currentIndex, - end - ) - ); - - fatalError(e); + jsonError(xhr.responseText.substring( + currentIndex, + end + ), e); } retriedImmediately = false; @@ -785,11 +794,7 @@ return; } - try { - handleReceivedData(JSON.parse(xhr.responseText)); - } catch (e) { - fatalError(e); - } + parseAndHandleReceivedData(xhr.responseText); blockMove--;