Fehler werden von der Engine ausgelöst, und Ausnahmen werden vom Entwickler ausgelöst. Aber was genau bedeutet das? In JavaScript sind alle Ausnahmen einfach Objekte. Während die meisten Ausnahmen Implementierungen der globalen Fehlerklasse sind, kann jedes alte Objekt ausgelöst werden. In diesem Sinne gibt es zwei Möglichkeiten, eine Ausnahme auszulösen: direkt über ein Fehlerobjekt und über ein benutzerdefiniertes Objekt.,
Generische Ausnahmen
Während die integrierte Fehlerklasse ziemlich gut definiert ist-einschließlich des Dateinamens, der Zeilennummer und der Stapelverfolgung, um nur einige zu nennen—, ist die Nachricht das Wichtigste. Der erste—und oft nur-Parameter, der während der Fehlerinstanziierung übergeben wird, ist die Nachricht ein vom Menschen lesbarer Fehler, der häufig direkt mit dem Endbenutzer in Verbindung gebracht werden kann. Das Auslösen einer generischen Ausnahme ist fast so einfach wie es sich anhört., Es dauert nur, ein Ausnahmeobjekt zu instanziieren—wobei der erste Parameter des Fehlerkonstruktors die Fehlermeldung ist-und dann… „zu werfen“.
throw new Error('Exception message');
Fehler.code vs. Fehler.nachricht
Es ist wichtig, hier zu beachten, dass, während die Fehlermeldung die vom Menschen lesbaren Fehlerdaten ist, Knoten.js bietet auch einen Fehlercode, der die Art des ausgelösten Fehlers identifiziert. Dieser Wert ist nützlich, da Sie sich programmgesteuert an möglicherweise ausgelöste Fehler anpassen können, unabhängig von der im Fehler enthaltenen Nachricht.,
Während Fehlercodes im Allgemeinen für Systemfehler verwendet werden, kann beim Erstellen benutzerdefinierter Fehler durch Erweitern der Fehlerklasse (siehe Benutzerdefinierte Ausnahmen unten für weitere Details) ein benutzerdefinierter Code definiert und für strukturiertere Fehlerdefinitionen verwendet werden.
Benutzerdefinierte Ausnahmen
Während es möglich ist, ein beliebiges Objekt auszulösen, wird empfohlen, das Fehlerobjekt um eine neue Klasse zu erweitern. In Umgebungen, die dies unterstützen, können Funktionen wie der automatische Stack-Trace in die Ausnahmebeantwortung einbezogen werden, was bei der späteren Diagnose von Problemen von entscheidender Bedeutung sein kann.,
Wenn ein benutzerdefiniertes Ausnahmeobjekt erstellt wurde, müssen wir es nur wie jeden anderen Fehler auslösen:
throw new CustomException('Exception message');
Ein weiterer großer Vorteil bei der Erweiterung des Fehlerobjekts, anstatt einen generischen Fehler auszulösen, besteht darin, dass zusätzliche Metadaten in den Fehler aufgenommen und später abgerufen werden können. Dies kann beim Debuggen und bei der Fehlerberichterstattung unglaublich wertvoll sein, da manchmal eine einfache Textnachricht einfach nicht ausreicht. Sie können beispielsweise die Werte lokaler Variablen oder Status einschließen, die Ihnen beim Debuggen des Problems helfen können.,
function CustomException(message, metadata) { const error = new Error(message); error.metadata = metadata; return error;}
Außerhalb der im Fehlerobjekt enthaltenen Daten sind bei Verwendung des Rollbar Notifier für JavaScript zusätzliche Daten ebenfalls im Bericht enthalten. Dazu gehören Kontextinformationen wie der Browser und der Benutzer.
// Caught errorstry { doSomething();} catch (e) { Rollbar.error("Something went wrong", e);}
Schreiben in die Konsole
In JavaScript befinden sich in der Konsole alle Protokolle können gefunden werden (mehr dazu in Wo werden JavaScript-Fehler protokolliert?). Zum Glück ist das Schreiben von Daten in die Konsole unglaublich einfach. Rufen Sie dazu einfach die Konsole auf.,log () – Methode mit der Nachricht, die Sie in das Protokoll schreiben möchten.
console.log("Top level");
Leave a Reply