Vorwort
Es gibt viele Arten von Fehlern, die in Node.js -Anwendungen auftreten können. Zum Beispiel: Wenn ein Syntaxfehler oder ein Laufzeitfehler auftritt, wird ein JavaScript -Fehler ausgelöst. Beim Versuch, auf eine Datei zuzugreifen, die nicht vorhanden ist oder nicht zugegriffen wird, wird ein Systemfehler ausgelöst. Zusätzlich zu JavaScript -Fehlern und Systemfehlern können Benutzer auch die Fehler anpassen.
1. Fehlklassifizierung
Node.js ist eine JavaScript -Laufzeitplattform, und seine Anwendungsfehler sind alle eine Error oder Error -Subclass -Instanz.
In Node.js -Anwendungen gibt es vier mögliche Fehler:
1. Standard -JavaScript -Fehler wie:
<EvalError> : Wenn eval() aufgerufen wird, fehl
<SyntaxError> : Bei Verwendung der illegalen JavaScript -Syntax geworfen
<RangeError> : Wenn ein Wert nicht innerhalb des angegebenen Bereichs liegt
<ReferenceError> : geworfen, wenn eine undefinierte Variable verwendet wird
<TypeError> : Beim Übergeben eines Fehlertypparameters
<URIError> : geworfen, wenn eine globale URI -Funktion falsch verwendet wird
2. Systemfehler. Diese Art von Fehler wird durch das zugrunde liegende System ausgelöst, z.
3. Benutzerdefinierte Fehler, solche Fehler werden vom Benutzer im Anwendungscode ausgelöst.
4. Assertionsfehler. Wenn der Code gegen die Rechtslogik verstößt, wird dieser Fehlertyp vom Node.js assert ausgelöst.
2. JavaScript -Fehler und Systemfehler
2.1 JavaScript -Fehler und benutzerdefinierte Fehler
Standard -JavaScript -Fehler werden von der JavaScript -Sprache bereitgestellt, die Syntaxfehler oder eine unsachgemäße Verwendung von APIs anzeigen. Alle Fehler sind eine Instanz Error , während Standard -JavaScript -Fehler von der Sprache selbst erstellt werden, wenn ein Fehler auftritt.
Verwenden Sie beim Anpassen von Fehlern den Konstruktor, um eine Instanz zu erstellen:
> Neuen Fehler werfen ('Es ist ein Fehler aufgetreten, dies ist die Fehlermeldung'); Fehler: Eine Fehlermeldung wurde bei Repl: 1: 7 bei ReplServer.defaulteVal (repl.js: 248: 27) bei gebundenem (Domain.js: 280: 14) bei replServer.runbound [ASEL] (Domain.js: 280: 14) bei ReplServer. bei emitone (events.js: 82: 20) bei replServer.emit (Ereignisse.JS: 169: 7) bei replServer.interface._online (readline.js: 210: 10) unter replServer.interface._line (readline.js: 549: 8) at replServer.inverface._ttyWrite (Readline.js: 826: 826 )._ttyWrite (Readline.js: 826 )._ttyWit (Readline.js: 826: 826 )._ttyWit (Readline.js: 826: 826 )._ttyWite (Readline.JS: 826 ). Wie oben haben wir einen Fehler angepasst und den Fehler mit dem Schlüsselwort Wurf geworfen. In diesem Fehlerobjekt enthält es die message und den stack . Nach der Ausnahmeregelung können auf diese Informationen über die folgenden zwei Eigenschaften zugegriffen werden:
1. error.message - Fehlermeldung
2. error.stack - Fehlerstapel -Trace -Informationen
Zusätzlich zu den Eigenschaften der Fehlerinstanz selbst können Sie auch einige Fehlereigenschaften anpassen. Passen Sie beispielsweise einen Eigenschaftsstatus an, der den Status darstellt:
VAR ERROR = NEUER ERROR ('Die von Ihnen besuchte Seite existiert nicht'); Fehler.Status = 404;2.2 Systemfehler
Systemfehler sind eine Erweiterung von JavaScript Error , die Betriebsfehler darstellen, die Programme verarbeiten können, und diese Fehlermeldungen werden auf Systemebene generiert. Zusätzlich zu den Attributen in der Error enthält die Systemfehlerinstanz auch die folgenden Attribute:
1. error.syscall .
2. error.errno - Ein ganzzahliger Fehlercode
3. error.code - stellt eine Fehlerzeichenfolge dar, die normalerweise mit dem Kapitalbuchstaben e beginnt
3. Ausnahmeerfassung
Node.js übernimmt eine ereignisorientierte und asynchrone Programmierbasis, was bedeutet, dass try / catch keine Fehler aufnehmen kann, die bei asynchroner Verarbeitung auftreten. Für diesen Fall können wir die folgenden zwei Möglichkeiten verwenden, um den Fehler zu fangen oder zu übergeben:
Ausnahmeaufnahme in Node.js Rückruffunktion
Node.js hat viele asynchrone APIs, die anschließend über den Rückruf von Callback -Funktion verarbeitet werden. Wenn ein Fehler auftritt, wird normalerweise ein Error in den ersten Parameter der callback aufgenommen. Wenn kein Fehler auftritt, ist der erste Parameter null . wie:
const fs = required ('fs'); fsEreignisbasierte Fehlerbehandlung
Wenn das Objekt ein EventEmitter ist, kann der Fehler durch das的'error' des Objekts erfasst und behandelt werden:
const net = required ('net'); const Connection = net.connect ('localhost'); // fügen Sie dem Stream einen Ereignishandler hinzu.Zusammenfassen
Das obige ist eine Zusammenfassung einiger Fehlertypen in Node.js. Wenn Sie die Fehlertypen in node.js verstehen können, können Sie uns helfen, Fehler und Ausnahmebefälle besser zu behandeln. Ich hoffe, der Inhalt dieses Artikels wird für alle hilfreich sein.