Uno debe evitar los errores throw
como la forma de pasar las condiciones de error en las aplicaciones.
La declaración throw
solo debe usarse "Para que esto nunca suceda, falle y queme. No se recupere elegantemente de ninguna manera"
Sin embargo,
try catch
se usa en situaciones en las que los objetos del host o ECMAScript pueden generar errores.
Ejemplo:
var json
try {
json = JSON.parse(input)
} catch (e) {
// invalid json input, set to null
json = null
}
Las recomendaciones en la comunidad node.js es que pasa errores en las devoluciones de llamada (porque los errores solo se producen en operaciones asíncronas) como primer argumento
fs.readFile(uri, function (err, fileData) {
if (err) {
// handle
// A. give the error to someone else
return callback(err)
// B. recover logic
return recoverElegantly(err)
// C. Crash and burn
throw err
}
// success case, handle nicely
})
También hay otros problemas, como intentar / capturar es muy costoso y es feo y simplemente no funciona con operaciones asíncronas.
Por lo tanto, dado que las operaciones síncronas no deberían generar un error y no funcionan con operaciones asíncronas, nadie usa el método catch catch, excepto los errores generados por los objetos del host o ECMAScript