Lassen Sie uns über die beiden Funktionen von try catch in Javascript sprechen

Lassen Sie uns über die beiden Funktionen von try catch in Javascript sprechen

Das Programm wird sequentiell von oben nach unten ausgeführt, und die Ausführungsroute kann durch einige Steueranweisungen geändert werden. Unter dem Einfluss der Steueranweisungen ist die endgültige Ausführungsroute des Programms der Kontrollfluss.

Die Steueranweisungen in js umfassen if, for, while, try catch usw., die die Richtung des Programms ändern.

Programme arbeiten mit Daten. Die Daten, die sich während der Ausführung des Programms, also während des Fortschreitens des Kontrollflusses, ändern, werden als Datenfluss bezeichnet.

Offensichtlich hängt der Datenfluss vom Kontrollfluss ab, und die Datenflussanalyse in der Programmanalyse muss auch zuerst mit der Kontrollflussanalyse durchgeführt werden.

Beispielsweise ein Codeabschnitt wie dieser:

Konstante a = 1;
sei b;

wenn (a === 1) {
    b = '1111';
} anders {
    b = '2222';
}

Da a 1 ist, wird b = '1111'; ausgeführt. Dies ist der Kontrollfluss, also der Code, den das Programm schließlich ausführt. Er kann verwendet werden, um die Richtung des Programms zu analysieren und einige Optimierungen wie das Löschen von totem Code durchzuführen.

Während der Kontrollfluss ausgeführt wird, wird b der Wert 2222 zugewiesen. Dies ist der Datenfluss, also der Prozess der Wertänderung, mit dem der Wert einer Variablen in einer bestimmten Anweisung analysiert werden kann.

Das Programm führt unterschiedliche Verarbeitungen für unterschiedliche Daten durch. Wenn die Daten falsch sind, kann das Verarbeitungsprogramm sie nicht verarbeiten und es wird ein Fehler gemeldet, der den nachfolgenden Kontrollfluss unterbricht. Beispielsweise sind die Daten leer, das Datenformat ist falsch usw. Derzeit wird try catch zur Fehlerbehandlung verwendet (auch Ausnahmebehandlung genannt).

Wir führen die Ausnahmebehandlung aus zwei Gründen durch:

1. Sorgen Sie für eine Absicherung fehlerhafter Logik.

Wenn beispielsweise beim Parsen der Parameter ein Fehler auftritt, weisen Sie im Catch einen Standardwert zu. Es ist nicht erforderlich, diesen Fehler nach seiner Behebung erneut zu melden. In diesem Fall ist „try catch“ ebenfalls Teil der Logik und entspricht „if else“.

2. Geben Sie eine eher szenariobasierte Beschreibung des gemeldeten Fehlers an.

JS-Fehler werden von der JS-Engine ausgelöst. Beispielsweise wird beim Aufruf einer Methode eines Nullobjekts ein TypeError gemeldet, und bei Verwendung einer nicht deklarierten Variable wird ein

Referenzfehler. Der jeweilige Fehler wird in verschiedenen Szenarien gemeldet und hat unterschiedliche Bedeutungen:

Wenn dieses Objekt aus einer Benutzereingabe stammt, bedeutet dies, dass die Benutzereingabe falsch ist. Wenn dieses Objekt vom Server abgerufen wird, bedeutet dies, dass die vom Server zurückgegebenen Daten falsch sind. In verschiedenen Szenarien hat derselbe Fehler spezifischere Bedeutungen, daher müssen wir „Try Catch“ ausführen. Geben Sie dann einen benutzerdefinierten Fehler aus, einschließlich der Fehlerbeschreibung mit Szenarioinformationen.

Viele Bibliotheken und Frameworks leisten in dieser Hinsicht gute Arbeit. Die gemeldeten Fehler enthalten alle spezifische Szenarioinformationen und sogar Lösungen. Einige werden auch über Fehlernummern verwaltet, und Lösungen können über errorno abgefragt werden. Es handelt sich hierbei um eine angepasste Fehlerbehandlung.

Viele in Geschäftscodes gemeldete Fehler werden jedoch nicht auf diese Weise behandelt, und der ursprüngliche Fehler wird direkt gemeldet. Wir werden die Ausnahmeüberwachungsplattform verwenden, um einige Fehler zu sammeln, die global ausgelöst werden. Diese Fehler sind oft relativ primitive Informationen. Obwohl sie den Fehlerort und -stapel enthalten, müssen wir das Problem dennoch lokalisieren, indem wir uns den Quellcode ansehen.

Beispielsweise wird ein Fehler gemeldet, dass ein Objekt leer ist. Woher weiß ich jedoch, welches Objekt leer ist, was der Grund dafür ist, wie ich es lösen kann und ob eine Nummer vorhanden ist?

Wäre es nicht viel besser, wenn wir verschiedene Fehler abfangen und dann für bestimmte Szenarien einige benutzerdefinierte Fehler auslösen könnten? Bibliotheken von Drittanbietern können dies sehr gut, aber nur wenige Leute achten auf szenariobasierte benutzerdefinierte Fehler im Geschäftscode.

Natürlich nutzen Benutzer des Front-End-Geschäftscodes die Software über die Schnittstelle, sodass es eigentlich ausreicht, lediglich einige UI-Eingabeaufforderungen für verschiedene Fehler bereitzustellen. Der Bibliothekscode ist für Entwickler bestimmt, daher ist es notwendig, szenarienbasierte Beschreibungen verschiedener Fehler zu erstellen und sogar Fehlernummern und Lösungen anzugeben.

Ich denke jedoch, dass Geschäftscode Fehler wie Bibliothekscode von Drittanbietern behandeln sollte. Melden Sie keine bedeutungslosen nativen Fehler, sondern einige benutzerdefinierte Fehler mit spezifischen Bedeutungen. Dies erleichtert die Fehlersuche und Problemlösung erheblich.

Obwohl szenariobasierte benutzerdefinierte Fehler bei der Problembehandlung besser helfen können, müssen sie auf dem Verständnis der möglichen vom Code gemeldeten Fehler basieren. Wenn die von Ihnen gemeldete Fehlermeldung nicht mit der tatsächlichen Fehlerursache übereinstimmt, wird die Problembehebung dadurch schwieriger. Es ist besser, den ursprünglichen Fehler zu melden.

Zusammenfassen

Der Ausführungsprozess eines Programms ist der Kontrollfluss, der durch Kontrollanweisungen beeinflusst wird. Daten ändern sich während des Ausführungsprozesses. Die Änderung der Daten wird als Datenfluss bezeichnet. Kontrollfluss und Datenfluss sind zwei Aspekte, die bei der Programmanalyse häufig untersucht werden.

Fehler unterbrechen den Kontrollfluss und wir müssen mit Try Catch etwas gegen die Fehler unternehmen.

Die Fehlerbehandlung dient zwei Zwecken:

Eine Möglichkeit besteht darin, eine Fallback-Verarbeitung durchzuführen, die dem „if else“-Befehl entspricht, sodass der Fehler nicht gemeldet werden muss.

Eine Möglichkeit besteht darin, eine szenariobasierte Beschreibung des nativen JS-Fehlers zu erstellen, ein Fehlerobjekt mit spezifischeren Informationen zu erstellen und es zu verwerfen.

Viele Bibliotheken machen das sehr gut und geben sogar Fehlernummern und Lösungen an. Viele Geschäftscodes liefern den Benutzern jedoch lediglich Feedback zur Benutzeroberfläche, ohne dass eine szenariobasierte Verpackung der aufgetretenen Fehler erfolgt. Dies führt dazu, dass es sich bei den von der Fehlerüberwachungsplattform erfassten Fehlern um relativ primitive Fehler handelt, bei denen zur Fehlerbehebung eine Überprüfung des Quellcodes erforderlich ist. Wenn wir auch eine szenariobasierte Fehlerverpackung wie den Bibliothekscode durchführen können, wird es viel einfacher sein, Probleme zu zählen und zu beheben, was die meisten Javascript-Entwickler nicht getan haben.

Dies ist das Ende dieses Artikels über die Rolle von try catch in Javascript. Weitere Informationen zur Rolle von try catch in Javascript finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Einführung in die Ausnahmebehandlung try...catch in js
  • Verwendung von Try Catch in Javascript
  • So verwenden Sie die JavaScript Try...Catch-Anweisung
  • Analyse der Leistungsauswirkungen von Try Catch auf die Codeausführung in JS
  • Beispielanalyse der Ausführungsregeln von try, catch und finally in js
  • Try...Catch...Finally in JavaScript verstehen
  • Analyse der Verwendung des Try-Catch-Ausnahmeerfassungsmechanismus in Javascript
  • JS-Ausnahmebehandlung – try..catch-Anweisung, Funktion und Beispiel
  • Zusammenfassung der Try-Catch-Anwendung in Javascript
  • Beispielanalyse für Throw-, Try- und Catch-Fehler in JavaScript-Anweisungen

<<:  JDBC-Idee: MySQL importieren, um Java-JAR-Paket zu verbinden (Mac)

>>:  So überprüfen Sie die Speichernutzung unter Linux

Artikel empfehlen

Was ist nach der Installation von Ubuntu 20.04 zu tun (Anleitung für Anfänger)

Ubuntu 20.04 wurde veröffentlicht und bringt viel...

Designideen für MySQL-Backup und -Wiederherstellung

Hintergrund Lassen Sie mich zunächst den Hintergr...

4 Möglichkeiten zur Implementierung von Routing-Übergangseffekten in Vue

Vue-Router-Übergänge sind eine schnelle und einfa...

Grafisches Tutorial zur Installation und Konfiguration von CenOS6.7 mysql 8.0.22

CenOS6.7 installiert MySQL8.0.22 (empfohlene Samm...

JavaScript zum Erzielen eines Klickbild-Flip-Effekts

Ich habe kürzlich an einem Projekt zur Gesichtser...

So ändern Sie die inländische Quelle von Ubuntu 20.04 apt

UPD 2020.2.26 Derzeit ist Ubuntu 20.04 LTS noch n...

Das WeChat-Applet verwendet die Videoplayer-Videokomponente

In diesem Artikelbeispiel wird der spezifische Co...

Gründe und Methoden zum Warten auf die Sperre der Tabellenmetadaten in MySQL

Wenn MySQL DDL-Operationen wie „Alter Table“ ausf...

JavaScript+HTML zur Implementierung eines Studenteninformationsmanagementsystems

Inhaltsverzeichnis 1. Einleitung 2. Rendern 3. Co...

Probleme und Lösungen bei der Verwendung der jsx-Syntax in React-vscode

Problembeschreibung Nach der Installation des Plu...

So führen Sie eine Spring Boot-Anwendung in Docker aus

In den letzten Tagen habe ich gelernt, wie man Sp...