// Dentro de JS pueden suceder errores // Hay una manera de gestioner errores // try{...}catch(err){...} let producto = { nombre: "Tuerca", precio: { PVP: 50, reducido: 20 } } let producto2 = { nombre: "Tuerca" } // Intenta ejecutar el código siguiente try { console.log(producto.nombre) console.log(producto.pecio.PVP) // Si hay algún error no petes, entra en el catch } catch (err) { // Dentro del catch tenemos el parámetro 'err' con la información del error console.log(err.message); console.log(err); } finally { console.log("Esto se ejecuta siempre"); } console.log("Hola") console.log(sumaPreciosOk([producto, producto2])); // Esto lanza un error porque accedemos a una propiedad que no existe function sumaPrecios(productos) { let suma = 0; for (let producto of productos) { suma += producto.precio.PVP; } return suma; } // Aquí lo hacemos bien: esto no interrumpe el programa function sumaPreciosOk(productos) { try { let suma = 0; for (let producto of productos) { suma += producto.precio.PVP; } return suma; } catch { return 0; // podría devolver undefined } } console.log(suma(8)); try{ console.log(suma(-8)); }catch(err){ console.log(err.message) } // lanzar errores propios function suma(numero) { if(numero<0 || numero>10000){ throw new Error("Número fuera de margen"); } let suma = 0; for (let i = 0; i < numero; i++) { suma += i; } return suma; }