Der 'try...catch'-Block
Teil des Abschnitts Logik & Ablauf der PHP-Journey von Coddy — Lektion 53 von 68.
Wenn Ihr PHP-Code auf Probleme stößt, die zu einem Absturz führen könnten, benötigen Sie eine Möglichkeit, diese Situationen kontrolliert zu handhaben. Der try...catch-Block bietet einen strukturierten Ansatz für den Umgang mit Exceptions – speziellen Fehlerobjekten, die schwerwiegende Probleme in Ihrem Code darstellen.
Der try-Block enthält Code, der fehlschlagen oder eine Exception auslösen könnte. Wenn innerhalb dieses Blocks eine Exception auftritt, stoppt PHP sofort die Ausführung des verbleibenden Codes im try-Block und springt zum entsprechenden catch-Block. Der catch-Block verarbeitet die Exception, sodass Ihr Skript weiterlaufen kann, anstatt abzustürzen.
<?php
try {
// Code, der eine Exception auslösen könnte
$result = riskyFunction();
echo "Success!";
} catch (Exception $e) {
// Die Exception behandeln
echo "An error occurred: " . $e->getMessage();
}
?>Der catch-Block erhält ein Exception-Objekt, das Informationen darüber enthält, was schiefgelaufen ist. Sie können auf die Fehlermeldung mit der Methode getMessage() zugreifen. Dieser Ansatz verhindert, dass Ihr gesamtes Skript stoppt, wenn etwas schiefgeht, und gibt Ihnen die Kontrolle darüber, wie Fehler behandelt werden und was Ihre Benutzer sehen.
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: eine Zahl, die einen Alterswert darstellt. Die Eingabe könnte eine negative Zahl sein, was für ein Alter ungültig wäre.
Lesen Sie die Eingabe ein, konvertieren Sie sie in eine Ganzzahl und erstellen Sie einen try...catch-Block. Überprüfen Sie innerhalb des try-Blocks, ob das Alter negativ ist. Wenn es negativ ist, werfen Sie eine neue Exception mit der Nachricht "Age cannot be negative". Wenn das Alter gültig ist (Null oder positiv), geben Sie "Valid age: " gefolgt vom Alterswert aus.
Behandeln Sie im catch-Block die Ausnahme, indem Sie "Error: " gefolgt von der Ausnahmenachricht unter Verwendung der Methode getMessage() ausgeben.
Eingabeformat: Eine Zeile, die eine Ganzzahl enthält (Beispiel: 25 oder -5)
Erwartete Ausgabe:
- Wenn das Alter gültig ist:
Valid age:gefolgt vom Alterswert - Wenn das Alter negativ ist:
Error: Age cannot be negative
Spickzettel
Der try...catch-Block behandelt Ausnahmen in PHP und verhindert, dass Skripte abstürzen, wenn Fehler auftreten.
Grundlegende Syntax:
<?php
try {
// Code, der eine Ausnahme auslösen könnte
$result = riskyFunction();
echo "Success!";
} catch (Exception $e) {
// Die Ausnahme behandeln
echo "An error occurred: " . $e->getMessage();
}
?>Der try-Block enthält potenziell problematischen Code. Wenn eine Ausnahme auftritt, springt PHP zum catch-Block, der ein Exception-Objekt erhält. Verwenden Sie getMessage(), um auf die Fehlermeldung zuzugreifen.
Sie können Ausnahmen manuell auslösen mit:
throw new Exception("Custom error message");Probier es selbst
<?php
// Eingabe lesen
$age = intval(fgets(STDIN));
// TODO: Schreiben Sie Ihren Code unten
// Erstellen Sie einen try...catch-Block, um das Alter zu validieren
?>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