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.