Utilisation des types d'exceptions en JavaScript
Supposons que nous ayons une fonction prenant en paramètre un JSON avec un tableau de données et écrivant chaque élément de ce tableau dans le stockage local :
function saveData(json) {
let arr = JSON.parse(json);
for (let i = 0; i < arr.length; i++) {
localStorage.setItem(i, arr[i]);
}
}
Dans cette fonction, une situation exceptionnelle peut survenir à deux endroits : lors de l'analyse du JSON et lors de la tentative de sauvegarde des données dans le stockage local.
Supposons, par exemple, que pour la gestion des erreurs nous ayons décidé d'afficher un message concernant les problèmes :
try {
saveData('{1,2,3,4,5}');
} catch (error) {
alert('quelques problèmes');
}
Notre message, c'est bien sûr une bonne chose, mais il ne différencie en rien les problèmes survenus. Il serait plus logique d'afficher un message indiquant précisément quel problème est survenu.
Pour cela, distinguons les erreurs survenues par leur nom :
try {
saveData('{1,2,3,4,5}');
} catch (error) {
if (error.name == 'QuotaExceededError') {
alert('espace de stockage insuffisant');
}
if (error.name == 'SyntaxError') {
alert('JSON incorrect');
}
}
Copiez le code de ma fonction saveData,
puis sans regarder mon code, implémentez
la gestion des erreurs que j'ai décrite.
Créez délibérément et tour à tour les situations exceptionnelles
qui peuvent survenir dans la fonction
saveData.