VorwortDie JavaScript-Engine ist ein Single-Thread-System. Wenn also eine Ausnahme auftritt, wird die Ausführung der JavaScript-Engine normalerweise beendet, der nachfolgende Code blockiert und eine Ausnahmemeldung ausgegeben. Daher sollten wir vorhersehbare Ausnahmen erfassen und sie Benutzern oder Entwicklern korrekt anzeigen. Error-ObjektWenn ein Laufzeitfehler auftritt, wird eine Fehlerinstanz ausgelöst. Das Fehlerobjekt hat zwei Eigenschaften:
Erstellen eines Fehlers
Fehlertyp js definiert die folgenden 7 Fehlertypen:
werfenEinige JavaScript-Codes enthalten keine syntaktischen Fehler, aber logische Fehler. Bei solchen Fehlern löst JavaScript keine Ausnahme aus. Zu diesem Zeitpunkt können wir selbst eine Instanz des Fehlerobjekts definieren und die throw-Anweisung verwenden, um aktiv eine Ausnahme auszulösen. Im Programm können wir mit der throw-Anweisung gezielt Ausnahmen werfen. Die Syntax lautet wie folgt:
versuchen…fangen…endlich
Es gibt drei Formen von Try-Anweisungen:
Die Finally-RegelWenn im Finally-Block eine Ausnahme ausgelöst wird, wird die Ausnahme im Try-Block überschrieben. versuchen { versuchen { neuen Fehler ausgeben (,,kann es nicht finden1‘); Endlich neuen Fehler ausgeben (,,kann es nicht finden2‘); } } fangen (Fehler) { console.log(Fehlermeldung); } // kann es nicht finden2 Wenn Sie einen Wert aus dem Finally-Block zurückgeben, wird dieser Wert zum Rückgabewert des gesamten Try-Catch-Finally, unabhängig davon, ob im Try- und Catch-Block Return-Anweisungen enthalten sind. Hierzu zählen auch in Catch-Blöcken ausgelöste Ausnahmen. Funktion test() { versuchen { neuen Fehler ausgeben (,,kann es nicht finden1‘); Rückgabe 1; } fangen (Fehler) { neuen Fehler ausgeben (,,kann es nicht finden2‘); Rückgabe 2; Endlich Rückgabe 3; } } konsole.log(test()); // 3 Try/Catch-LeistungEin bekanntes Anti-Optimierungsmuster ist die Verwendung von try/catch In V8 (und möglicherweise anderen JS-Engines) können Funktionen, die Try/Catch-Anweisungen verwenden, nicht vom V8-Compiler optimiert werden. Fenster.beiFehlerDurch die Definition einer Ereignis-Listener-Funktion für window.onerror werden nicht abgefangene Ausnahmen, die von anderem Code im Programm generiert werden, häufig von der für window.onerror registrierten Listener-Funktion abgefangen.
Ausnahmen in PromisesAusnahme in Promise ausgelöst
Abfangen von Ausnahmen in Promise
Beachten In einer JavaScript-Funktion unterbricht nur return / yield / throw die Ausführung der Funktion, und reject verhindert die weitere Ausführung nicht. Beispiel: Ablehnen ohne Rückgabe Versprechen.lösen() .then(() => { console.log('vor der Ausführung ablehnen'); ablehnen (neuer Fehler ('Fehler auslösen')); console.log('nach Ausführung ablehnen'); }) .catch((err) => { console.log(Fehlermeldung); }); // vor der Ausführung ablehnen // Fehler ausgeben // nach der Ausführung ablehnen Ablehnen mit Return Versprechen.lösen() .then(() => { console.log('vor der Ausführung ablehnen'); Rückgabe ablehnen (neuer Fehler ('Fehler auslösen')); console.log('after execute reject'); //*** Der Unterschied besteht darin, dass, wenn return zurückgegeben wird, es hier nicht ausgeführt wird}) .catch((err) => { console.log(Fehlermeldung); }); // vor der Ausführung ablehnen // Fehler ausgeben Vue-AusnahmeerfassungVue.config.errorHandler = (err, vm, info) => { console.error("Fehler vom Vue ErrorHandler erfasst"); Konsole.Fehler(Fehler); Konsole.Fehler(vm); konsole.fehler(info); }; ZusammenfassenDies ist das Ende dieses Artikels über den Fehlerabfangmechanismus für JavaScript-Grundlagen. Weitere relevante Inhalte zum Fehlerabfangmechanismus von JS finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
<<: Dynamische SQL-Anweisungsanalyse in Mybatis
>>: Linux Überprüfen Sie den Installationsort der Software einfache Methode
Dieser Artikel stellt den Implementierungscode fü...
Vorwort Bei der WeChat-Applet-Entwicklung (native...
Inhaltsverzeichnis Erster Schritt der Installatio...
Schreiben Sie am Anfang Dieser Artikel behandelt ...
Hat jemand von Ihnen nach dem Nationalfeiertag fe...
1. Lösung für das Problem, dass die Seite leer is...
MTR steht für Mini-Transaktion. Wie der Name scho...
Inhaltsverzeichnis 1. Voranalyse 1. Vorabanalyse ...
Inhaltsverzeichnis Anwendungsszenarien So erreich...
Inhaltsverzeichnis 1. Einleitung 2. auswählen 2.1...
Freunde fragen mich immer, wie man Linux-Prozesse...
Inhaltsverzeichnis el-scrollbar Bildlaufleiste el...
Inhaltsverzeichnis 1. Haken anzeigen 1. Was bei d...
Inhaltsverzeichnis Stabilisierung Drosselung: Ant...
IFNULL(Ausdruck1,Ausdruck2) Wenn expr1 nicht NULL...