un. Défaut
1. Erreur de syntaxe
Également connu sous le nom d'erreurs d'analyse, se produisent lors de la compilation dans les langages de programmation traditionnels et se produisent en JavaScript lors de l'interprétation. Ces erreurs sont directement causées par des caractères inattendus dans le code, puis ils ne peuvent pas être directement compilés / interprétés. Par exemple, une ligne de code n'a pas le support de clôture, ce qui entraîne une erreur de syntaxe. Lorsqu'une erreur de syntaxe se produit, le code ne peut pas être exécuté. Dans JavaScript, seul le code dans le même thread sera affecté par des erreurs de syntaxe. Le code dans d'autres threads et dans d'autres fichiers référencés en externe peut continuer à exécuter s'il ne dépend pas du code contenant l'erreur.
2. Erreur d'exécution
Également connu sous le nom d'exception (exception, après compilation / interprète). À ce stade, le problème n'est pas dans la syntaxe du code, mais dans certains cas, une opération tentée de terminer est illégale. par exemple, par exemple
window.openmyfile ();
Étant donné que la méthode OpenMyFile () n'existe pas, le navigateur renverra une exception. Les exceptions affectent uniquement le thread qui se produit, et d'autres threads JavaScript peuvent continuer à s'exécuter normalement.
deux. Gestion des erreurs
1. Fonction de gestion des événements OneError
Il s'agit du premier mécanisme pour aider JavaScript à gérer les erreurs. Lorsqu'une exception se produit sur la page, l'événement d'erreur est tiré sur l'objet Window. Par exemple, par exemple
La copie de code est la suivante:
<html>
<adal>
<Title> ONERROR Exemple </TITME>
<script type = "text / javascript">
window.onError = function () {
alert ("Une erreur s'est produite!");
}
</cript>
</ head>
<body onload = "function1 ()">
</docy>
</html>
Dans le code ci-dessus, en essayant d'appeler une fonction inexistante pendant que la page est chargée, une exception sera soulevée. Un message d'erreur selon lequel "l'erreur s'est produite" apparaît. Cependant, le message d'erreur du navigateur s'affiche également. Comment le cacher dans le navigateur? Renvoyez simplement une vraie méthode.
La copie de code est la suivante:
<script type = "text / javascript">
window.onError = function () {
alert ("Une erreur s'est produite!");
Retour Vrai;
}
</cript>
1) Supprimer le message d'erreur
Le gestionnaire ONERROR fournit trois types d'informations pour déterminer la nature exacte de l'erreur:
i) Message d'erreur - Pour une erreur donnée, le navigateur affichera les mêmes informations;
ii) URL - dans lequel un fichier une erreur s'est produite;
Numéro de ligne - le numéro de ligne où l'erreur s'est produite dans l'URL donnée.
Voir l'exemple suivant pour les méthodes d'accès:
La copie de code est la suivante:
<script type = "text / javascript">
window.onError = fonction (SMESSAGE, SURL, SLINE) {
alert ("Une erreur s'est produite! / n" + SMESSAGE + "/ NURL:" + Surl + "/ nline Number:" + Sline);
Retour Vrai;
}
</cript>
2) Erreur de chargement d'image
L'objet Window n'est pas le seul objet qui prend en charge la fonction de gestion des événements ONERROR, il fournit également une prise en charge des objets image. Lorsqu'une image ne peut pas être chargée avec succès en raison de la non-existence du fichier, l'événement d'erreur est déclenché sur l'image. Regardons un exemple:
<img src = ”Amigo.jpg” oneError = ”alert ('Une erreur s'est produite lors du chargement de l'image')" />
L'exemple ci-dessus alloue directement la fonction de gestionnaire d'événements ONERROR dans HTML. Bien sûr, vous pouvez également allouer des fonctions de traitement des événements via des scripts. Avant de définir les caractéristiques SRC de l'image, vous devez attendre que la page soit pleinement chargée. Le code est le suivant:
La copie de code est la suivante:
<html>
<adal>
<Title> Test d'erreur d'image </TITME>
<script type = "text / javascript">
fonction handleload () {
document.images [0] .onError = function () {
alert ("Une erreur s'est produite lors du chargement de l'image!");
};
document.images [0] .src = "Amigo.jpg";
}
</cript>
</ head>
<body onload = "handleload ()">
<img />
<body>
</html>
Remarque: Contrairement à la fonction de gestionnaire d'événements ONERROR de l'objet Window, l'événement OnError de l'image a des paramètres d'information supplémentaires.
3) gérer les erreurs de syntaxe
OnError peut également gérer les erreurs de syntaxe. Mais une chose doit être notée que le gestionnaire d'événements doit être le premier code qui apparaît sur la page, car si une erreur de syntaxe se produit avant de définir le gestionnaire d'événements, le gestionnaire d'événements sera inutile.
Remarque: les erreurs de syntaxe arrêteront complètement l'exécution du code.
Remarque: Le principal problème de l'utilisation du gestionnaire d'événements ONERROR est qu'il fait partie de la nomenclature, donc aucune norme ne peut contrôler son comportement. Par conséquent, différents navigateurs utilisent cet événement pour gérer considérablement les erreurs. par exemple, par exemple Lorsqu'un événement d'erreur se produit dans IE, le code normal continuera à être exécuté, toutes les variables et données sont conservées et sont accessibles via la fonction ONERROR Event Gandler. À Mozilla, l'exécution du code normal se terminera et toutes les variables et données avant l'erreur se produisent.
2. Essayez… Catch Instruction
ECMPScript Third Edition présente l'instruction Try… Catch. Par exemple, par exemple
La copie de code est la suivante:
essayer {
window.openfile1 ();
alert ("appelé avec succès OpenFile1 Méthode");
} catch (exception) {
alerte ("Exception s'est produite!");
} enfin {
alert ("Try..catch Test se termine!");
}
Contrairement à Java, la norme ECMAScript ne peut avoir qu'une instruction Catch dans l'instruction Try ... Catch, car JavaScript est un langage de type faible et ne peut pas spécifier le type d'exception spécifique dans la clause Catch. Quel que soit le type d'erreur, il est géré par la même instruction Catch. Cependant, Mozilla l'a élargi et peut ajouter plusieurs instructions de capture, qui ne sont pas recommandées d'utiliser de cette façon.
Enfin utilisé pour inclure le code à exécuter, peu importe si une exception se produit, ce qui est utile pour clôturer les liens ouverts et la libération des ressources.
1) Énoncé d'essai imbriqué…
Utilisé pour faire face aux problèmes d'erreur dans les clauses de capture, jetons un coup d'œil à un exemple, le code est le suivant:
La copie de code est la suivante:
essayer {
eval ("a ++ b");
} catch (oexception) {
alert ("Une erreur s'est produite!");
essayer {
var aerror = nouveau tableau (1000000000000000000000000000000000000000000000000000000000000000000000);
} catch (exception) {
alert ("Une erreur s'est produite dans la clause de capture!");
}
} enfin{
alerte ("terminé")
}
2) Objet d'erreur
Lorsqu'une erreur se produit, JavaScript a une classe de base d'erreur pour lancer. Il a deux caractéristiques:
i) Nom - une chaîne représentant le mauvais type
ii) Message - Message d'erreur réel.
Le nom de l'objet d'erreur correspond à sa classe et peut être l'une des valeurs suivantes:
Evaluror: L'erreur se produit dans la fonction EVAL ();
RangeError: la valeur numérique dépasse la plage que JavaScript peut représenter;
ReferenceError: une référence illégale a été utilisée;
Syntaxerror: une erreur de syntaxe s'est produite dans l'appel de fonction EVAL (), et d'autres erreurs de plus en plus ont été rapportées par le navigateur et n'ont pas pu être traitées par essai ... Catch;
TypeError: Le type de la variable n'est pas ce qui devrait être nécessaire;
Urierror: une erreur s'est produite dans la fonction d'encodéuri ou de décodéuri.
3) Déterminer le type d'erreur
Les deux méthodes suivantes peuvent être utilisées pour déterminer le type d'erreur. La première méthode est basée sur l'attribut de nom de l'exception, comme suit:
La copie de code est la suivante:
essayer {
eval ("a ++ b");
} catch (oexception) {
if (oException.Name = "Syntaxerror") {
alert ("Syntaxerror s'est produit!");
} autre {
alert ("Autre erreur s'est produite!");
}
}
L'opérateur d'instance est utilisé dans la seconde et le code est le suivant:
La copie de code est la suivante:
essayer {
eval ("a ++ b");
} catch (oexception) {
if (instance oException de syntaxerror) {
alert ("Syntaxerror s'est produit!");
} autre {
alert ("Autre erreur s'est produite!");
}
}
4) Déclaration de lancer d'exception de lancer
Dans la troisième édition d'ECMascript, il est utilisé pour lancer des exceptions délibérément. L'objet d'erreur lancé peut être une chaîne, un nombre, une valeur booléenne ou un objet réel, ou un objet d'erreur (son constructeur n'a qu'une seule fonction, c'est-à-dire un message d'erreur). Eg1. Jetez une nouvelle erreur ("Erreur s'est produite!");
Eg2.
La copie de code est la suivante:
fonction addtwonumb (a, b) {
if (arguments.length <2) {
Jetez une nouvelle erreur ("Deux nombres doivent être transmis!");
}
}
essayer {
result = addTwonUmber (90);
} catch (oexception) {
if (instance oException de syntaxerror) {
alert ("Syntaxerror:" + oException.Message);
} else if (oxception instanceof error) {
alert (oException.Message);
}
}
Ce qui précède est tout le contenu décrit dans cet article. J'espère que vous pouvez l'aimer.