Heim > Web-Frontend > js-Tutorial > Hauptteil

JavaScript-Fehlerbehandlung_Javascript-Kenntnisse

WBOY
Freigeben: 2016-05-16 16:16:02
Original
1577 Leute haben es durchsucht

1. Fehlerklassifizierung

1. Syntaxfehler

Diese Fehler werden auch als Parsing-Fehler bezeichnet und treten in herkömmlichen Programmiersprachen zur Kompilierungszeit und in JavaScript zur Interpretationszeit auf. Diese Fehler werden direkt durch unerwartete Zeichen im Code verursacht, die dann nicht direkt kompiliert/interpretiert werden können, z. B. in Eine Codezeile erzeugte einen Syntaxfehler aufgrund einer fehlenden rechten Klammer. Wenn ein Syntaxfehler auftritt, kann die Codeausführung nicht fortgesetzt werden. In JavaScript ist nur Code innerhalb desselben Threads von Syntaxfehlern betroffen. Code in anderen Threads und in anderen extern referenzierten Dateien kann weiterhin ausgeführt werden, wenn er nicht von dem Code abhängt, der den Fehler enthält.

2. Laufzeitfehler

Auch als Ausnahme bekannt (Ausnahme zur Kompilierzeit/nach dem Interpreter). An diesem Punkt liegt das Problem nicht in der Syntax des Codes, sondern darin, dass versucht wird, einen Vorgang abzuschließen, der in manchen Fällen illegal ist. zB.

window.openMyFile();

Da die Methode openMyFile() nicht existiert, gibt der Browser eine Ausnahme zurück. Die Ausnahme betrifft nur den Thread, in dem sie aufgetreten ist, und andere JavaScript-Threads können weiterhin normal ausgeführt werden.

2. Umgang mit Fehlern

1.  Funktion zur Behandlung von Fehlerereignissen

Es ist der erste Mechanismus, der JavaScript bei der Fehlerbehandlung unterstützt. Wenn auf der Seite eine Ausnahme auftritt, wird das Fehlerereignis für das Fensterobjekt ausgelöst. Z.B.

Code kopieren Der Code lautet wie folgt:

                                                                                                              
                                                                                                                                                                                 onerror example
                                 
        

         
        


Wenn Sie im obigen Code versuchen, beim Laden der Seite eine nicht vorhandene Funktion aufzurufen, wird eine Ausnahme ausgelöst. Es erscheint die Fehlermeldung „Es ist ein Fehler aufgetreten“. Die Fehlermeldung des Browsers wird jedoch auch im Browser angezeigt. Geben Sie einfach einen Wert „true“ von der onerror-Methode zurück.

Code kopieren Der Code lautet wie folgt:


1) Fehlermeldung entfernen

Der onerror-Handler stellt drei Arten von Informationen bereit, um die genaue Art des Fehlers zu bestimmen:

i) Fehlermeldung – für einen bestimmten Fehler zeigt der Browser dieselbe Meldung an

ii) URL – in welcher Datei der Fehler aufgetreten ist;

Zeilennummer – Die Zeilennummer in der angegebenen URL, in der der Fehler aufgetreten ist.

Siehe das folgende Beispiel für die Zugriffsmethode:

Code kopieren Der Code lautet wie folgt:


2) Fehler beim Laden des Bildes

Das Fensterobjekt ist nicht das einzige Objekt, das Onerror-Ereignisbehandlungsfunktionen unterstützt, es bietet auch Unterstützung für Bildobjekte. Wenn ein Bild aus Gründen wie der Nichtexistenz einer Datei nicht erfolgreich geladen werden kann, wird das Fehlerereignis für das Bild ausgelöst. Schauen wir uns ein Beispiel an:

Das obige Beispiel weist die onerror-Ereignishandlerfunktion direkt in HTML zu. Natürlich können Ereignisverarbeitungsfunktionen auch über Skripte zugewiesen werden. Bevor Sie die Quelleigenschaften des Bildes festlegen, müssen Sie warten, bis die Seite vollständig geladen ist. Der Code lautet wie folgt:

Code kopieren Der Code lautet wie folgt:



                                                                                                                                

        
                                                                                                                                                                                        



Hinweis: Im Gegensatz zum onerror-Ereignishandler des Fensterobjekts verfügt das onerror-Ereignis des Bildes über keine zusätzlichen Informationsparameter.
3) Syntaxfehler behandeln

onerror kann auch Syntaxfehler verarbeiten. Eines muss jedoch beachtet werden: Die Event-Handler-Funktion muss der erste Code sein, der auf der Seite angezeigt wird, denn wenn der Syntaxfehler auftritt, bevor die Event-Handler-Funktion festgelegt wird, ist die Event-Handler-Funktion unbrauchbar.

Hinweis: Syntaxfehler führen dazu, dass die Ausführung des Codes vollständig gestoppt wird.

Hinweis: Das Hauptproblem bei der Verwendung des onerror-Ereignishandlers besteht darin, dass er Teil der Stückliste ist und es daher keinen Standard gibt, der sein Verhalten steuern kann. Daher gibt es offensichtliche Unterschiede in der Art und Weise, wie verschiedene Browser dieses Ereignis zur Fehlerbehandlung verwenden. Wenn beispielsweise im IE ein Fehlerereignis auftritt, wird der normale Code weiterhin ausgeführt und alle Variablen und Daten bleiben erhalten und können verarbeitet werden das onerror-Ereignis. In Mozilla wird die normale Codeausführung beendet und alle Variablen und Daten vor dem Auftreten des Fehlers werden zerstört.

2. 

try...catch-Anweisung

Die dritte Ausgabe von ECMPScript führt die try...catch-Anweisung ein. Z.B.

Code kopieren

Der Code lautet wie folgt: versuche es mit {           window.openFile1();
alarm("openFile1-Methode erfolgreich aufgerufen");
} Catch (Ausnahme) {
alarm("Eine Ausnahme ist aufgetreten!");
} endlich {
alarm("try..catch test is over!");
}



Im Gegensatz zu Java kann der ECMAScript-Standard nur eine Catch-Anweisung in der try...catch-Anweisung haben. Da JavaScript eine schwach typisierte Sprache ist, gibt es keine Möglichkeit, den spezifischen Ausnahmetyp in der Catch-Klausel anzugeben. Unabhängig von der Art des Fehlers wird er von derselben Catch-Anweisung behandelt. Allerdings hat Mozilla es um mehrere Catch-Anweisungen erweitert, was nicht empfohlen wird.
wird schließlich verwendet, um Code zu enthalten, der unabhängig davon ausgeführt wird, ob eine Ausnahme auftritt. Dies ist nützlich, um offene Links zu schließen und Ressourcen freizugeben.

1) Verschachtelte try…catch-Anweisung

wird verwendet, um Fehler in der Catch-Klausel zu behandeln. Schauen wir uns ein Beispiel an:

Code kopieren

Der Code lautet wie folgt: versuche es mit { eval("a b");
} Catch(oException) {
alarm("Ein Fehler ist aufgetreten!");
Versuchen Sie es mit {
var aError = new Array(10000000000000000000000000000000000000);
} Catch(Ausnahme) {
alarm("In der Catch-Klausel ist ein Fehler aufgetreten!");
}
} endlich{
Alert("Abgeschlossen")
}

2) Objet d'erreur

Lorsqu'une erreur se produit, JavaScript dispose d'une classe de base Error à lancer. Il possède deux fonctionnalités :

i) name - une chaîne représentant le type d'erreur

ii) message - le message d'erreur réel.

Le nom de l'objet Error correspond à sa classe et peut être l'une des valeurs suivantes :

EvalError : L'erreur s'est produite dans la fonction eval()

RangeError : la valeur numérique dépasse la plage que JavaScript peut représenter ;

ReferenceError : référence illégale utilisée ;

SyntaxError : Une erreur de syntaxe s'est produite dans l'appel de la fonction eval(). D'autres erreurs sont signalées par le navigateur et ne peuvent pas être gérées par try...catch ;

TypeError : Le type de variable n'est pas attendu ;

URIError : Une erreur s'est produite dans la fonction encodeURI ou decodeURI.

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 est basée sur l'attribut name de l'exception, comme suit :

Copier le code Le code est le suivant :
essayez {
         eval("a b");
} catch(oException) {
Si (oException.name = "SyntaxError") {
alert("Une erreur de syntaxe s'est produite!");
} autre {
alert("Une autre erreur s'est produite!");
>
}

Le second utilise l'opérateur instanceof, le code est le suivant :

Copier le code Le code est le suivant :
essayez {
         eval("a b");
} catch(oException) {
Si (oException instanceof SyntaxError) {
alert("Une erreur de syntaxe s'est produite!");
} autre {
alert("Une autre erreur s'est produite!");
>
>

4) Instruction de lancement qui lève une exception

Introduit dans la troisième édition d'ECMAScript, il est utilisé pour lancer des exceptions à cet effet. L'objet d'erreur généré peut être une chaîne, un nombre, une valeur booléenne ou un objet réel. Il peut également lancer un objet Error (son constructeur n'en a qu'un). fonction, c'est-à-dire message d'erreur). par exemple1. throw new Error("Une erreur s'est produite!");

eg2.

Copier le code Le code est le suivant :
fonction addTwoNumber(a, b) {
Si (arguments.length < 2) {
          throw new Error("Deux nombres doivent être transmis !");
>
>
essayez {
résultat = addTwoNumber(90);
} catch(oException) {
Si (oException instanceof SyntaxError) {
alert("SyntaxError:" oException.message);
} else if (oException instance d'erreur){
alert(oException.message);
>
>

Ce qui précède est tout le contenu décrit dans cet article, j'espère que vous l'aimerez.

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!