// 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;
}