Il faut éviter les throw
erreurs comme moyen de faire passer les conditions d'erreur dans les applications.
La throw
déclaration ne devrait être utilisée que "Pour que cela ne se produise jamais, plantez et brûlez. Ne récupérez jamais de façon élégante"
try catch
Cependant, il est utilisé dans des situations où des objets hôtes ou ECMAScript peuvent générer des erreurs.
Exemple:
var json
try {
json = JSON.parse(input)
} catch (e) {
// invalid json input, set to null
json = null
}
Dans la communauté node.js , il est recommandé de transmettre les erreurs dans les rappels (car les erreurs ne se produisent que pour les opérations asynchrones) en tant que premier argument.
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
})
Il y a aussi d'autres problèmes, comme essayer / attraper, c'est très cher et c'est moche et ça ne fonctionne tout simplement pas avec les opérations asynchrones.
Donc, puisque les opérations synchrones ne doivent pas générer d'erreur et que cela ne fonctionne pas avec les opérations asynchrones, personne n'utilise try catch, à l'exception des erreurs renvoyées par des objets hôtes ou par ECMAScript.
While in java or *any other language* it is mandatory to have error handling...
- Pas vraiment. Java, oui, mais il y a beaucoup de langages qui n'insistent pas sur try-catch (comme C #).