JavaScriptLección 14 de 16

JSON y manejo de errores

JSON es el formato de texto con el que los programas guardan y envían datos. try...catch evita que un registro roto tumbe todo el programa.

Lo esencial

  • JSON.stringify(obj) convierte un objeto en texto y JSON.parse(text) hace lo contrario
  • En JSON las claves y los textos van solo entre comillas dobles, y no hay funciones ni undefined
  • try { … } catch (error) { … } finally { … }: catch atiende el error y finally se ejecuta siempre
  • throw new Error("…") lanza tu propio error, con name y message
  • El texto de un SyntaxError cambia según el navegador; mejor comprobar error.name

Ejemplo

const user = { name: "Ola", langs: ["js", "css"], active: true }; const text = JSON.stringify(user);console.log(text); const copy = JSON.parse(text);console.log(copy.langs[1], copy === user); try {  JSON.parse("{oops}");  console.log("This line never runs");} catch (error) {  console.log("Caught:", error.name);} finally {  console.log("Done");}

JSON.parse creó una copia nueva, por eso copy === user da false. {oops} no es JSON: parse lanzó un SyntaxError, catch lo atrapó y finally se ejecutó igualmente.

Tarea

Cómo usar el editor⌘ Enter o Ctrl Enter ejecuta el código, ⇧ ⌘ Enter comprueba la tarea.Tab y Mayús Tab sangran la línea o la selección; Esc y luego Tab sale del editor.La comprobación compara lo que imprimió el programa con la tarea; los espacios al final de línea no cuentan.Tras dos comprobaciones fallidas puedes ver la solución. Tu código se guarda en este navegador.

Una partida guardada está rota y otra no tiene puntos. Completa readPlayer(text): analiza el JSON dentro de try, lanza new Error("Missing score") si falta score y, en catch, imprime Skipped: broken JSON para un SyntaxError o Skipped: con el mensaje del error en otro caso, y devuelve null. Salida: Skipped: broken JSON, Skipped: Missing score, Loaded: 2 y el JSON de los dos jugadores.

Salida

Aquí aparecerá lo que imprima el programa.