Zum Inhalt springen

Benutzerdefinierte Fehler in JavaScript

Nutzung benutzerdefinierter Fehler in JavaScript für verbessertes Fehlerhandling

JavaScript ermöglicht es Entwicklern, eigene benutzerdefinierte Fehlertypen zu erstellen, indem sie die eingebaute Error-Klasse erweitern. Diese Funktion ermöglicht ein detaillierteres Fehlerhandling und ein besseres Management von Ausnahmen in komplexen Anwendungen. Im Folgenden werden wir anhand praktischer Beispiele untersuchen, wie man benutzerdefinierte Fehler definiert und verwendet.

Grundlagen des Erweiterns der Error-Klasse

Um einen benutzerdefinierten Fehler zu erstellen, erweitern Sie die Error-Klasse. Dies beinhaltet das Einrichten einer neuen Klasse, die Eigenschaften und Methoden von Error erbt.

Erstellen einer benutzerdefinierten Fehlerklasse

Hier ist ein einfaches Beispiel, wie man einen benutzerdefinierten Fehler erstellt:


javascript
class ValidationError extends Error {
  constructor(message) {
    super(message);  // Call the super class constructor and pass in the message
    Object.setPrototypeOf(this, new.target.prototype);  // Ensure instanceof works correctly across realms
    this.name = "ValidationError";  // Set the error name to the class name
  }
}

Diese ValidationError-Klasse kann verwendet werden, um spezifisch Fehler im Zusammenhang mit der Validierung in einer Anwendung zu behandeln.

Verwenden benutzerdefinierter Fehler

Sobald Sie einen benutzerdefinierten Fehler definiert haben, können Sie ihn in Ihrer Anwendung wie jeden Standardfehler auslösen:


Output appears here after Run.

In diesem Beispiel wird eine E-Mail-Adresse anhand eines regulären Ausdrucks validiert. Wenn die Validierung fehlschlägt, wird ein ValidationError ausgelöst. Dieser Fehler wird dann im try...catch-Block abgefangen, und wenn es sich um eine Instanz von ValidationError handelt, wird eine spezifische Meldung ausgegeben.

Behandeln mehrerer Arten benutzerdefinierter Fehler

Möglicherweise möchten Sie verschiedene Fehlertypen für unterschiedliche Teile Ihrer Anwendung erstellen. So können Sie mehrere benutzerdefinierte Fehler behandeln:


Output appears here after Run.

Diese Konfiguration ermöglicht eine getrennte Behandlung verschiedener Fehlertypen, wodurch die Anwendung robuster und einfacher zu debuggen ist.

Erweitertes Fehlerhandling mit benutzerdefinierten Fehlern in JavaScript

Aufbauend auf den Grundlagen benutzerdefinierter Fehler können wir diese auf komplexere Szenarien wie asynchrone Operationen und spezifische Geschäftslogik-Fälle anwenden.

Beispiel 1: Benutzerdefiniertes API-Fehlerhandling

Dieses Beispiel zeigt, wie man einen benutzerdefinierten Fehler erstellt und verwendet, um Probleme bei API-Anfragen zu behandeln, wie z. B. wenn eine angeforderte Ressource nicht gefunden wird oder der Server einen Fehler zurückgibt.


Output appears here after Run.

Erklärung

  • ApiError-Klasse: Diese benutzerdefinierte Klasse fängt API-spezifische Fehler ab und speichert den HTTP-Statuscode zusammen mit einer benutzerdefinierten Meldung.
  • fetchData-Funktion: Versucht, Daten von einer angegebenen URL abzurufen. Wenn die Antwort nicht erfolgreich ist, wird ein ApiError mit einer detaillierten Meldung und dem Statuscode ausgelöst.
  • Fehlerbehandlung: Fehler werden abgefangen und angemessen behandelt. API-bezogene Fehler werden mit detaillierten Informationen protokolliert, während unerwartete Fehler ebenfalls abgefangen und protokolliert werden.

Beispiel 2: Benutzerdefiniertes Validierungsfehlerhandling

Verwenden Sie dieses Beispiel, um Fehler im Zusammenhang mit der Datenvalidierung zu behandeln, wie z. B. die Überprüfung von Benutzereingaben.


Output appears here after Run.

Erklärung

  • ValidationError-Klasse: Eine benutzerdefinierte Fehlerklasse, die dabei hilft, zu identifizieren, welches bestimmte Feld der Eingabedaten den Validierungstest nicht bestanden hat.
  • validateUser-Funktion: Überprüft die Gültigkeit von Benutzerdaten. Wenn die Daten bestimmte Kriterien nicht erfüllen, wird ein ValidationError ausgelöst.
  • Fehlerbehandlung: Fängt Validierungsfehler ab und protokolliert sie mit detaillierten Informationen. Andere Fehlertypen werden ebenfalls separat behandelt.

Fazit

Das Erstellen benutzerdefinierter Fehlerklassen in JavaScript durch Erweiterung der Error-Klasse ist eine leistungsstarke Technik, um bestimmte Fehlertypen auf eine detailliertere Weise zu behandeln. Sie verbessert die Klarheit und Wartbarkeit des Fehlerhandlings in Ihrem Code und ermöglicht es Ihnen, spezifischere Rückmeldungen und Aktionen basierend auf verschiedenen Fehlerbedingungen bereitzustellen. Diese Methode hilft nicht nur beim Debuggen, sondern verbessert auch die Zuverlässigkeit Ihrer Anwendungen, indem sichergestellt wird, dass jeder Fehlertyp korrekt abgefangen und behandelt wird.

Practice

Was ist der Zweck der Verwendung erweiterter Fehlerklassen in JavaScript?

Finden Sie das nützlich?

Dual-run-Vorschau — vergleichen Sie mit den Symfony-Routen live.