Versuchen Sie es Block
PHP hat eine Basisklasse mit dem Namen Ausnahme und Ausnahmen werden aus geworfen versuchen Block nach Ausnahme oder Unterklasse von Ausnahme Klasse.
Syntax:
versuchenBlock fangen
Fangen Block erscheint nach versuchen Block. PHP unterstützt mehrere fangen Blöcke, um mehrere Ausnahmen zu verarbeiten. Wenn eine Ausnahme ausfällt, versucht PHP, mit dem ersten Fangblock zu übereinstimmen.
Syntax:
versuchenEndlich blockieren
Schließlich kann Block danach verwendet werden oder anstatt Block in PHP zu fangen, und dieser Block wird ausgeführt, wenn Try -Block -Exits. Jeder Normal- oder Terminierungscode kann diesem Block hinzugefügt werden, nachdem der Code von Try Block ausgeführt wurde.
Syntax:
versuchenBeispiel 1: Verwenden Sie den Try-Catch-Block für einfachen Fehler
Das folgende Beispiel zeigt die Verwendung eines Try-Catch-Blocks für eine einzige Ausnahme. Erstellen Sie eine PHP -Datei mit dem folgenden Skript. Der Wert des Abfrageparameters 'num'wurde im Try -Block gelesen und überprüft. Wenn der Wert unter 10 liegt, wirft der Try -Block eine Ausnahme in den Catch -Block aus. Andernfalls wird der Wert gedruckt. Catch Block fängt die Ausnahme an und druckt die Nachricht aus dem Try -Block senden. Wenn kein Abfrageparameter übergeht, beträgt der Standardwert 100.
// testen Sie die Nummer beträgt 10 oder mehrDie Nummer muss 10 oder mehr betragen.
");Die Zahl ist $ n
";Ausgang:
Führen Sie das Skript ohne Abfrageparameter aus.
http: // localhost/phpCode/trycatch1.Php
Führen Sie das Skript mit einem Abfrage -Parameterwert aus, der weniger als 10 beträgt.
http: // localhost/phpCode/trycatch1.Php?Num = 5
Führen Sie das Skript mit einem Abfrage -Parameterwert aus, der größer als 10 ist.
http: // localhost/phpCode/trycatch1.Php?Num = 15
Beispiel-2: Umgang mit mehreren Fehlern durch Erben der Ausnahmeklasse
Erstellen Sie eine PHP -Datei mit dem folgenden Skript, um die mehrfachen Ausnahmen mithilfe mehrerer Fangblocks zu verarbeiten. Eine Unterklasse namens 'myexception"Wurde durch Erweiterung der Basisklasse erstellt"Ausnahme'um mit dem' umzugehen 'Ungültiger URL -Fehler''. Die Basisklasse Ausnahme wurde zum Handling verwendet 'Leerer URL -Fehler''.
// eine Unterklasse -Myexception deklarieren, indem sie die Ausnahmeklasse erweitert''.$ this-> Nachricht.'Ist keine gültige URL -Adresse
';URL -Adresse ist leer.
");".$ url."Ist eine gültige URL -Adresse
";Ausgang:
Führen Sie das Skript ohne Abfrageparameter aus.
http: // localhost/phpCode/trycatch2.Php
Führen Sie das Skript mit einem Abfrageparameter mit dem Namen URL ohne Wert.
http: // localhost/phpCode/trycatch2.Php?URL =
Führen Sie das Skript mit einem Abfrageparameter mit dem Namen URL mit einem ungültigen URL -Wert.
http: // localhost/phpCode/trycatch2.Php?URL = Google
Führen Sie das Skript mit einem Abfrageparameter mit dem Namen URL mit einem gültigen URL -Wert.
http: // localhost/phpCode/trycatch2.Php?url = http: // google.com
Bild
Beispiel-3: Dateifehler mithilfe von Try, Fang und schließlich blockieren
Erstellen Sie eine PHP -Datei mit dem folgenden Skript, um die Verwendung von Try, Fang und schließlich zu kennen. Das Skript wird versucht, den Datei -Test zu öffnen.TXT 'und Try Block löst eine Ausnahme aus, wenn die Datei nicht am aktuellen Ort vorhanden ist oder nicht öffnen kann. Der Catch -Block druckt die Fehlermeldung aus dem Try -Block aus. Der Code des endgültigen Blocks schließt den Dateihandler, nachdem er den Try -Block ausgeführt hat. Versuchen Sie Block, drucken Sie den Inhalt der Datei, wenn kein Fehler angezeigt wird.
error_reporting (0);Die Datei kann nicht geöffnet werden.
");Ausgang:
Führen Sie das Skript aus.
http: // localhost/phpCode/trycatch3.Php
Beispiel-4: Verwenden Sie einen verschachtelten Try-Catch-Block
Erstellen Sie eine PHP-Datei mit dem folgenden Skript, um die Art und Weise zu kennen. Das Skript überprüft den Wert einer URL, der eine Zahl ist oder nicht im ersten Versuchs-Catch-Block, und die Nummer mehr als 100 oder nicht wird im zweiten Try-Catch-Block überprüft.
if (isset ($ _ get ['n']))Ausgang:
Führen Sie das Skript ohne Abfrageparameter aus.
http: // localhost/phpCode/trycatch4.Php
Führen Sie das Skript mit dem Parameterwert von Abfrage weniger als 100 aus.
http: // localhost/phpCode/trycatch4.Php?n = 78
Führen Sie das Skript mit dem Parameterwert von Abfrage größer als 100 aus.
http: // localhost/phpCode/trycatch4.Php?n = 112
Beispiel-5: Verwenden Sie den Try-Catch-Block mit der Funktion
Erstellen Sie eine PHP-Datei mit dem folgenden Skript, um die Verwendung des Try-Catch-Blocks mit der Funktion zu kennen. Das Skript enthält zwei numerische Werte aus den URL-Abfrageparametern, und der Try-Catch-Block ruft eine Funktion auf, die eine Ausnahme ausführt, wenn das “Durch Null teilen" ein Fehler ist aufgetreten.
// Funktion zur Berechnung der Division definierenDas Ergebnis von $ a/$ b = $ Ergebnis
";Fehler: ', $ e-> getMessage () ","
";Ausgang:
Führen Sie das Skript ohne Abfrageparameter aus.
http: // localhost/phpCode/trycatch5.Php
Führen Sie das Skript mit den Parameterwerten der Abfrage 10 und 5 aus.
http: // localhost/phpCode/trycatch5.Php?N1 = 10 & n2 = 5
Führen Sie das Skript mit den Parameterwerten der Abfrage 10 und 0 aus.
http: // localhost/phpCode/trycatch5.Php?N1 = 10 & n2 = 0
Beispiel-6: Die Fehlermeldung im Detail für benutzerdefinierte Ausnahme anzeigen
Erstellen Sie eine PHP -Datei mit dem folgenden Skript, um die Fehlermeldung ausführlich anzuzeigen, indem Sie verschiedene Methoden der Ausnahmeklasse verwenden. Das Skript nimmt den Dateinamen aus dem URL.
if (isset ($ _ get ['fn']))Ausgang:
Führen Sie das Skript ohne Abfrageparameter aus.
http: // localhost/phpCode/trycatch66.Php
Führen Sie das Skript mit dem Abfrageparameter aus, der den nicht existierenden Dateinamen enthält.
http: // localhost/phpCode/trycatch66.Php?fn = Text.txt
Führen Sie das Skript mit dem Abfrageparameter aus, der den vorhandenen Dateinamen enthält.
http: // localhost/phpCode/trycatch66.Php?FN = Trycatch5.Php
Abschluss
Die grundlegenden Verwendungen des Try-Catch-Blocks wurden in diesem Tutorial mit sehr einfachen PHP-Skripten erläutert. Ich hoffe.