Eine benutzerdefinierte Exception erstellen
Teil des Abschnitts Logik & Ablauf der PHP-Journey von Coddy — Lektion 56 von 68.
Während die integrierte Exception-Klasse von PHP gut für die allgemeine Fehlerbehandlung funktioniert, bietet das Erstellen eigener benutzerdefinierter Exception-Klassen viel spezifischere und aussagekräftigere Fehlermeldungen. Benutzerdefinierte Exceptions helfen Ihnen dabei, zwischen verschiedenen Arten von Problemen in Ihrem Code zu unterscheiden und diese angemessen zu behandeln.
Um eine benutzerdefinierte Exception zu erstellen, erweitern Sie die Basisklasse Exception von PHP unter Verwendung des Schlüsselworts extends. Diese Vererbung verleiht Ihrer benutzerdefinierten Exception die gesamte Funktionalität der Standard-Exception, während sie es Ihnen ermöglicht, Ihr eigenes spezifisches Verhalten hinzuzufügen oder einfach einen aussagekräftigeren Namen bereitzustellen.
<?php
class InvalidEmailException extends Exception {
// Die Klasse kann leer sein - sie erbt alles von Exception
}
// Sie können auch benutzerdefinierte Eigenschaften oder Methoden hinzufügen
class CustomException extends Exception {
public function getCustomMessage() {
return "Custom error: " . $this->getMessage();
}
}
?>Die Stärke benutzerdefinierter Ausnahmen liegt in ihren aussagekräftigen Namen und der Fähigkeit, spezifische Ausnahmetypen abzufangen. Anstatt eine generische Exception abzufangen, können Sie InvalidEmailException, DatabaseConnectionException oder jede andere von Ihnen erstellte benutzerdefinierte Ausnahme abfangen. Dies macht Ihre Fehlerbehandlung präziser und Ihren Code wartbarer.
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Aufgabe
EinfachSie erhalten eine Eingabe: einen String, der den Namen einer Exception-Klasse darstellt. Diese Eingabe ist ein einzelnes Wort, das als Name für Ihre benutzerdefinierte Exception-Klasse verwendet werden soll (Beispiel: NegativeBalanceException oder InvalidUsernameException).
Lesen Sie die Eingabe und erstellen Sie eine benutzerdefinierte Exception-Klasse unter Verwendung des angegebenen Namens. Ihre benutzerdefinierte Exception-Klasse sollte die Basisklasse Exception von PHP erweitern. Geben Sie nach dem Erstellen der Klasse "Custom exception created: " gefolgt von dem Klassennamen aus, den Sie als Eingabe erhalten haben.
Eingabeformat: Eine Zeile, die einen String enthält, der den Namen der Exception-Klasse darstellt (Beispiel: InvalidAgeException)
Erwartete Ausgabe: Custom exception created: gefolgt von dem Namen der Exception-Klasse
Spickzettel
Um benutzerdefinierte Exceptions in PHP zu erstellen, erweitern Sie die Basis-Exception-Klasse mit dem extends-Schlüsselwort:
<?php
class InvalidEmailException extends Exception {
// Die Klasse kann leer sein - sie erbt alles von Exception
}
// Sie können auch benutzerdefinierte Eigenschaften oder Methoden hinzufügen
class CustomException extends Exception {
public function getCustomMessage() {
return "Custom error: " . $this->getMessage();
}
}
?>Benutzerdefinierte Exceptions bieten spezifischere und aussagekräftigere Fehlermeldungen, was es Ihnen ermöglicht, spezifische Exception-Typen anstelle von generischen Exception-Objekten abzufangen. Dies macht die Fehlerbehandlung präziser und den Code wartbarer.
Probier es selbst
<?php
// Den Namen der Exception-Klasse lesen
$className = trim(fgets(STDIN));
// TODO: Schreiben Sie unten Ihren Code, um die benutzerdefinierte Exception-Klasse zu erstellen
// Das Ergebnis ausgeben
echo "Custom exception created: " . $className;
?>Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Logik & Ablauf
1Fortgeschrittene Funktionen
Anonyme FunktionenClosures und 'use'Arrow FunctionsCallback-FunktionenVerwendung von 'call_user_func'VariablenfunktionenReferenzübergabeRekursive FunktionenRückblick: Funktions-Medley4Mehrdimensionale Arrays
Ein 2D-Array erstellenZugriff auf 2D-Array-ElementeÄndern von 2D-Array-ElementenIterieren mit verschachtelten Schleifen2D assoziative ArraysZusammenfassung: Einfache Gitter-Übung2Fortgeschrittene Array-Manipulationen
Hinzufügen mit 'array_push'Entfernen mit 'array_pop'Hinzufügen mit 'array_unshift'Entfernen mit 'array_shift'Indizierte Arrays zusammenführenAssoziative Arrays zusammenführenExtrahieren mit 'array_slice'Werte mit 'in_array'Schlüssel mit 'array_search'Rückblick: Playlist-Übung5Schüler-Notenbuch
Projekt-Setup: DatenstrukturEinen neuen Schüler hinzufügenEinem Schüler eine Note hinzufügenDurchschnittsnote eines Schülers berechnenDen besten Schüler findenEin Zeugnis erstellen8Fehler- und Ausnahmebehandlung
PHP-Fehler verstehenDer 'try...catch'-BlockDer 'finally'-BlockEine Exception auslösenEine benutzerdefinierte Exception erstellenEine benutzerdefinierte Exception verwendenZusammenfassung: Eingabevalidierung3Arrays sortieren
Indizierte Arrays aufsteigend sortierenIndizierte Arrays absteigend sortierenAssoziative Arrays nach Wert sortierenAssoziative Arrays nach Schlüssel sortierenNatürliche SortierungBenutzerdefiniertes Sortieren mit 'usort'Recap: Leaderboard-Sortierung