Heim > Artikel > Backend-Entwicklung > Wie man Fehler und Ausnahmen in PHP behandelt
In PHP können Sie verschiedene integrierte Mitgliedsfunktionen in der Ausnahmebehandlungsklasse „Exception“ verwenden, um Ausnahmedaten abzurufen und zurückzugeben. Beispielsweise kann die Funktion „getMessage()“ den Inhalt der Ausnahmemeldung zurückgeben. Versuchen Sie die Anweisung „catch“ und das Schlüsselwort „throw“, um Ausnahmen im Programm abzufangen.
Die Betriebsumgebung dieses Tutorials: Windows 7-System, PHP-Version 7.1, DELL G3-Computer
Ausnahmebehandlungsklasse in PHP
PHP bietet in dieser Klasse eine integrierte Ausnahmebehandlungsklasse – Exception Häufig verwendete Mitgliedsfunktionen sind wie folgt:
getMessage(): gibt den Nachrichteninhalt der Ausnahme zurück;
getCode(): gibt den Ausnahmecode in numerischer Form zurück;
getFile(): gibt den zurück Datei, in der die Ausnahme aufgetreten ist. Name;
getLine(): Gibt die Codezeilennummer zurück, in der der Fehler aufgetreten ist Funktion, die in eine Zeichenfolge formatiert wurde. Von der Funktion getTrace() generierte Informationen: generiert Ausnahmezeichenfolgeninformationen, die überladen werden können. Beachten Sie, dass der Funktion zwei Unterstriche vorangestellt sind.
Der folgende Code ist der vollständige Code der Exception-Klasse. Aus der Definition dieser Klasse können wir ersehen, auf welche Eigenschaften und Methoden (Mitgliedsfunktionen) in vom Benutzer abgeleiteten Unterklassen zugegriffen und diese geerbt werden können.
Exception { /* 属性 */ protected string $message ; protected int $code ; protected string $file ; protected int $line ; /* 方法 */ public __construct ([ string $message = "" [, int $code = 0 [, Throwable $previous = NULL ]]] ) final public getMessage ( void ) : string final public getPrevious ( void ) : Throwable final public getCode ( void ) : int final public getFile ( void ) : string final public getLine ( void ) : int final public getTrace ( void ) : array final public getTraceAsString ( void ) : string public __toString ( void ) : string final private __clone ( void ) : void }
try{ // 可能出现异常或错误的代码,比如文件操作、数据库操作等 }catch(Exception $e){ // $e 为一个异常类的对象 // 输出错误信息 }
Code, der eine Ausnahmebehandlung erfordert, muss im Try-Codeblock platziert werden, um mögliche Ausnahmen abzufangen. Jeder Versuch muss mindestens einen entsprechenden Fang haben. Verwenden Sie mehrere Catches, um von verschiedenen Klassen generierte Ausnahmen abzufangen.
Im PHP-Code generierte Ausnahmen können durch Throw-Anweisungen ausgelöst und durch Catch-Anweisungen abgefangen werden. Natürlich erlaubt PHP, innerhalb von Catch-Blöcken erneut Ausnahmen auszulösen.
Wenn eine Ausnahme ausgelöst wird, wird der nachfolgende Code nicht weiter ausgeführt und PHP versucht weiterhin, den ersten passenden Catch zu finden. Wenn eine Ausnahme nicht abgefangen und nicht entsprechend mit set_Exception_handler() behandelt wird, wird ein schwerwiegender Fehler generiert und die Meldung UncaughtException... ausgegeben. 【Beispiel】Verwenden Sie Try Catch und Throw, um Ausnahmen im Programm abzufangen.
<?php try{ $err = '抛出异常信息,并跳出 try 语句块'; if(is_dir('./test')){ echo '这里是一些可能会发生异常的代码'; }else{ throw new Exception($err, 12345); // 抛出异常 } echo '上面抛出异常的话,这行代码将不会执行,转而执行 catch 中的代码。<br>'; }catch(Exception $e){ echo '捕获异常:'.$e->getMessage().'<br>错误代码:'.$e->getCode().'<br>'; } echo '继续执行 try catch 语句之外的代码'; ?>
Die laufenden Ergebnisse lauten wie folgt:
捕获异常:抛出异常信息,并跳出 try 语句块 错误代码:12345 继续执行 try catch 语句之外的代码
Versuchen Sie im Beispielcode im try-Anweisungsblock festzustellen, ob im aktuellen Verzeichnis ein Verzeichnis mit dem Namen test vorhanden ist. Wenn dieses Verzeichnis nicht vorhanden ist, wird der Code aktiviert Zeile 7 wird ausgeführt. Das Schlüsselwort throw löst eine Ausnahme aus. Diese Ausnahme ist ein Objekt der Exception-Klasse, das über das Schlüsselwort new generiert wird. Das Objekt wird mit der Fehlermeldung $err und dem Fehlercode 12345 initialisiert, sodass diese Informationen abgerufen werden können, wenn die Ausnahme später abgefangen wird (Zeile 11 des Code).
Sobald eine Ausnahme ausgelöst wird, wird der verbleibende Code im Try-Anweisungsblock nicht mehr ausgeführt. Der Programmablauf wird zur Ausführung an den entsprechenden Catch-Anweisungsblock übertragen und schließlich werden die Fehlerinformationen und der Code durch Aufrufen ausgegeben seine Mitgliedsfunktion über das Exception-Objekt.
Empfohlenes Lernen: „
PHP-Video-Tutorial“
Das obige ist der detaillierte Inhalt vonWie man Fehler und Ausnahmen in PHP behandelt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!