Maison  >  Article  >  interface Web  >  Introduction à la capture d'exceptions dans les compétences JavaScript_javascript

Introduction à la capture d'exceptions dans les compétences JavaScript_javascript

WBOY
WBOYoriginal
2016-05-16 16:23:121169parcourir

Comme le langage Java, JavaScript peut lever des exceptions via l'instruction throw. Contrairement au langage Java, JavaScript peut générer tous les types de valeurs via l'instruction throw, pas seulement les objets d'erreur.


Copier le code Le code est le suivant :

//Lance un objet Erreur.
essayez{
throw new Error("Message dans l'objet d'erreur");
}attraper(e){
console.log(e);//Erreur : message dans l'objet d'erreur
>

essayez{
lancez "Message brut" ;
}attraper(message){
console.log(message);//Message brut
console.log(typede message);//string
>

essayez{
lancer 42 ;
}attraper(code){
console.log(code);//42
console.log(typede code);//numéro
>


Comme le langage Java, si l'exception n'est interceptée par aucune instruction catch, l'exception sera finalement renvoyée à l'utilisateur :


Copier le code Le code est le suivant :

essayez{
//lancer une nouvelle erreur("erreur de test");//Une erreur sera générée Erreur : erreur de test
. }enfin{
>

essayez{
lancer 42 ;//Une erreur sera générée. Erreur : 42
}enfin{
>


Pour intercepter les exceptions levées, JavaScript utilise également les instructions try/catch/finally. Les règles d'utilisation sont les suivantes : try est obligatoire, catch et final sont des instructions facultatives, mais au moins une des instructions catch et final doit apparaître.

Dans l'instruction catch, vous pouvez définir un paramètre e (ou tout autre nom de variable légal) pour stocker la valeur de l'exception levée. Dans l'instruction catch, ce paramètre peut être utilisé comme variable locale. Contrairement à d'autres utilisations de variables en JavaScript, la variable paramètre dans l'instruction catch n'est valide que dans l'instruction catch (la portée de la variable est limitée à l'instruction catch).

Pour les instructionsfinally, le code final sera exécuté qu'il y ait ou non une exception levée lors de l'essai. Les détails incluent :

1. Aucune exception ne se produit dans try. Lorsque l'instruction try est exécutée, le code final sera exécuté.
2. Aucune exception ne se produit dans try, mais lorsque le code try se termine en raison de l'exécution d'instructions break, continue ou return, le code final sera exécuté.
3. Une exception se produit dans try. Une fois l'exception gérée par l'instruction catch, le code est finalement exécuté.
4. Lorsqu'une exception se produit dans try, mais que l'exception doit continuer à être levée vers le haut car il n'y a pas d'instruction catch, le code final sera exécuté. Il convient de noter qu'en l'absence d'une instruction catch, JavaScript exécutera d'abord le code en final, puis continuera à lever une exception.

Dans le code final, si une instruction break, continue ou return apparaît, JavaScript exécutera directement ces instructions, quelles que soient les instructions break, continue ou return qui peuvent exister dans le code try même en l'absence de l'instruction catch ; provoque une exception. Lorsqu'il est signalé, JS ignorera également les informations de rapport d'exception et continuera à exécuter les instructions break, continue ou return dans le code final. De même, si une exception est également levée dans le code final, JavaScript supprimera toutes les instructions break, continue ou return dans le code try, rejettera également les comportements de rapport d'exception possibles et lèvera uniquement l'exception dans le code final.

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn