⊗jsSpExcThr 145 of 294 menu

Lever des exceptions en JavaScript

Dans les leçons précédentes, nous avons étudié deux endroits où JavaScript lève une exception en cas de problèmes.

Cependant, dans votre projet, il peut y avoir d'autres situations qui sont exceptionnelles pour vous, mais pas pour JavaScript. Dans ce cas, vous pouvez créer et lever vos propres exceptions personnalisées.

Analysons la syntaxe nécessaire pour cela. Pour commencer, l'exception doit être créée à l'aide de la commande new Error, en passant le texte de l'exception en paramètre :

new Error('texte de l\\'exception');

Ensuite, cette exception doit être levée à l'aide de la commande throw :

throw new Error('texte de l\\'exception');

Lever une exception oblige JavaScript à considérer qu'une situation exceptionnelle s'est produite. Cela signifie que cette exception peut être capturée à l'aide de la structure try-catch et traitée de la manière souhaitée.

Voyons sur un exemple comment l'utiliser. Supposons que nous ayons une fonction qui divise un nombre par un autre :

function div(a, b) { return a / b; }

Considérons que la division par zéro est interdite et qu'une tentative de le faire doit générer une situation exceptionnelle. Pour cela, vérifions dans la fonction s'il n'y a pas de tentative de division par 0. Si non - nous divisons, si oui - nous levons une exception :

function div(a, b) { if (b !== 0) { return a / b; } else { throw new Error('erreur de division par zéro'); } }

Pour commencer, essayons simplement de diviser par 0, sans capturer l'exception :

alert( div(3, 0) );

Dans ce cas, l'exécution du script sera interrompue et une erreur avec le texte 'erreur de division par zéro' apparaîtra dans la console (vérifiez). Maintenant, capturons notre erreur et traitons-la d'une certaine manière :

try { alert( div(3, 0) ); } catch (error) { alert('vous essayez de diviser par 0, ce qui est interdit'); }

En JavaScript, la tentative d'extraire la racine carrée d'un nombre négatif ne conduit pas à lever une exception :

let result = Math.sqrt(-1); console.log(result); // affichera NaN

Écrivez votre propre fonction qui extraira la racine carrée d'un nombre et qui lèvera une exception si la racine est extraite d'un nombre négatif.

bnrohukksw