So entwerfen Sie Ausnahmeklassen in PHP-Projekten

王林
Freigeben: 2023-02-25 15:12:01
Original
2131 Leute haben es durchsucht

So entwerfen Sie Ausnahmeklassen in PHP-Projekten

PHP-Ausnahmeklassen und Ausnahmebehandlungsoperationen

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
}
Nach dem Login kopieren

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 )
}
Nach dem Login kopieren

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();
}
?>
Nach dem Login kopieren

3. Benutzerdefinierte Ausnahmeklasse

Beispiel:

class customException extends Exception
 {
 public function errorMessage()
 {
 //error message
 $errorMsg = &#39;Error on line &#39;.$this->getLine().&#39; in &#39;.$this->getFile()
 .&#39;: <b>&#39;.$this->getMessage().&#39;</b> is not a valid E-Mail address&#39;;
 return $errorMsg;
 }
 }
Nach dem Login kopieren

Ausnahme auslösen und fangen:

try{
throw new customException("这是自定义异常。");
}
catch(customException $ex){
#some codes
}
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage