try script nodejs new error ejemplo catch and javascript error-handling finally

nodejs - Manejo de errores de Javascript con try... catch... finally



try catch nodejs (3)

Finalmente, los bloques se ejecutan cuando sales del bloque try. En tu código, esto sucede cuando devuelves falso. Eso establece el valor de retorno en falso e intenta salir de la función. Pero primero tiene que salir del bloque try que desencadena el final y sobrescribe el valor de retorno a verdadero.

Muchos lo consideran una buena práctica de programación tener una declaración de retorno única por función. Considere hacer una variación al comienzo de su función y configurarla en verdadero o falso, según corresponda, a lo largo de su función y luego estructurar el código para que caiga correctamente en una sola declaración en la parte inferior.

Sospecho que estoy usando el bloque finally incorrecta, y que no entiendo los fundamentos de su propósito ...

function myFunc() { try { if (true) { throw "An error"; } } catch (e) { alert (e); return false; } finally { return true; } }

Esta función ejecutará el bloque catch , alertará "Un error", pero luego devolverá verdadero. ¿Por qué no devuelve falso?


El bloque finally contiene sentencias para ejecutar después de que se ejecuten los bloques try y catch pero antes de las instrucciones que siguen a la sentencia try ... catch. El bloque finally ejecuta si se lanza una excepción o no. Si se lanza una excepción, las instrucciones en el bloque finally se ejecutarán incluso si ningún bloque catch maneja la excepción. Más

El bloque finally siempre se ejecutará, intenta volver true después de tu bloque try

function myFunc() { try { if (true) { throw "An error"; } return true; } catch (e) { alert (e); return false; } finally { //do cleanup, etc here } }


function getTheFinallyBlockPoint(someValue) { var result; try { if (someValue === 1) { throw new Error("Don''t you know that ''1'' is not an option here?"); } result = someValue } catch (e) { console.log(e.toString()); throw e; } finally { console.log("I''ll write this no matter what!!!"); } return result; }; getTheFinallyBlockPoint("I wrote this only because ''someValue'' was not 1!!!"); getTheFinallyBlockPoint(1);

Ejecute esto en la consola de su navegador y podría darle la respuesta que está buscando.