Die Ausnahmebehandlung wird als Fehlerbehandlung klassifiziert. PHP hat ab 5.1.0 die Ausnahmebehandlungsklasse Exception hinzugefügt.
1. Ausnahmebehandlung
Die PHP-Ausnahmebehandlung ähnelt Java und verwendet Try-, Throw- und Catch-Anweisungen zum Codieren, wenn eine Ausnahme auftritt. Wenn die Ausnahme nicht abgefangen wird und die Funktion set_Exception_handler() zur entsprechenden Verarbeitung verwendet wird, kommt es zu einem schwerwiegenden Fehler (fatal error) und es wird eine Fehlermeldung „Uncaught Exception“ ausgegeben.
1. Versuchen Sie:
wird für Codeblöcke verwendet, bei denen Ausnahmen auftreten können.
2. throw:
gibt an, wie Ausnahmen ausgelöst werden, die zum Auslösen von Ausnahmen verwendet werden. Jeder Wurf muss mindestens einem Fang entsprechen.
3. Catch:
Ausnahmen abfangen und Objekte erstellen, die Ausnahmeinformationen enthalten.
Hinweis: Nehmen wir an, dass PHP-Ausnahmen ausgelöst werden müssen, um sie abzufangen.
Grundstruktur:
try{ #some codes throw new Exception("message"[,code[,...]]); } catch(Exception $ex){ #some codes }
2. PHP-Ausnahme-Basisklasse Exception
Klassenzusammenfassung:
Exception { /* 属性 */ protected string $message ; protected int $code ; protected string $file ; protected int $line ; /* 方法 */ public __construct ([ string $message = "" [, int $code = 0 [, Exception $previous = NULL ]]] ) final public string getMessage ( void ) final public Exception getPrevious ( void ) //获取异常链中前一个异常 final public int getCode ( void ) final public string getFile ( void ) final public int getLine ( void ) final public array getTrace ( void ) //获取异常追踪信息 final public string getTraceAsString ( void ) //字符串方式返回异常追踪信息 public string __toString ( void ) final private void __clone ( void ) }
Beschreibung:
Wie aus dieser Basisklasse ersichtlich ist, enthält das PHP-Ausnahmeobjekt hauptsächlich abnormale Textinformationen (Nachricht) und Ausnahmen Code /Codename (Code, sollte zur Identifizierung des Entwicklers verwendet werden), die Datei, in der die Ausnahme aufgetreten ist (Datei, die PHP-Datei, in der die Ausnahme aufgetreten ist) und der spezifische Ort, an dem die Ausnahme aufgetreten ist (Zeile, die Zeilennummer, in der die Ausnahme aufgetreten ist). geworfen).
Beispiel:
<?php try { throw new Exception("Some error message", 30);//抛出异常,设置异常代号为30 } catch(Exception $e) { echo "Exception:file:".$e->getFile().",message:" . $e->getMessage().",code:".$e->getCode()."line:".$e->getLine(); } ?>
3. Benutzerdefinierte Ausnahmeklasse
Beispiel:
class customException extends Exception { public function errorMessage() { //error message $errorMsg = 'Error on line '.$this->getLine().' in '.$this->getFile() .': <b>'.$this->getMessage().'</b> is not a valid E-Mail address'; return $errorMsg; } }
Ausnahme auslösen und fangen:
try{ throw new customException("这是自定义异常。"); } catch(customException $ex){ #some codes }
4. Multi-Catch-Fangausnahme
Wenn in einer try-Anweisung verschiedene Ausnahmen ausgelöst werden können, können mehrere entsprechende Catch-Blöcke vorhanden sein, um verschiedene Arten von Ausnahmen zu erfassen. Einige Punkte sind auf die gleiche Weise wie in Java zu beachten:
1. Setzen Sie den großen Ausnahmefang später ein. Denn wenn eine Ausnahme ausgelöst wird, wird der Reihe nach bestimmt, welcher Catch zuerst erfüllt wird, und es wird jeweils nur ein Catch ausgeführt.
2. Wenn der Versuch einmal ausgeführt wird, wird höchstens ein Catch ausgeführt (wenn eine Ausnahme auftritt). Wenn also ein vorheriger Catch die Ausführung erfüllt, werden die nachfolgenden Catches nicht berücksichtigt.
Empfohlenes Tutorial: PHP-Video-Tutorial
Das obige ist der detaillierte Inhalt vonSo entwerfen Sie Ausnahmeklassen in PHP-Projekten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!