Heim  >  Artikel  >  Backend-Entwicklung  >  Fünf Minuten, um Ihnen zu zeigen, was Ausnahmebehandlung in PHP ist

Fünf Minuten, um Ihnen zu zeigen, was Ausnahmebehandlung in PHP ist

WBOY
WBOYOriginal
2021-10-20 17:26:062733Durchsuche

Im vorherigen Artikel habe ich Ihnen „Sie müssen verstehen, wie man Bildwasserzeichen in PHP hinzufügt“ vorgestellt, der Ihnen anhand von Beispielen eine detaillierte Einführung in das Hinzufügen von Wasserzeichen in PHP gegeben hat Wenn Sie Kenntnisse über die Fehlerbehandlung in PHP haben, hoffe ich, dass es Ihnen helfen kann!

Fünf Minuten, um Ihnen zu zeigen, was Ausnahmebehandlung in PHP ist

Fehler- und Ausnahmebehandlung in PHP werden in PHP sehr häufig verwendet. In unserer täglichen Entwicklung werden wir definitiv auf Dinge stoßen, wie das Vergessen, ein Semikolon hinzuzufügen, den falschen Funktionsnamen zu schreiben oder die Funktion wurde neu definiert usw . Wenn wir während des Entwicklungsprozesses Fehler finden und anzeigen können, ist dies auf jeden Fall sehr vorteilhaft für unsere Entwicklung.

Daher hilft uns die richtige Anwendung eines Prozesses bei der Entwicklung eines Projekts, Fehler zu finden und zu korrigieren, um die Entwicklung zu beschleunigen. Dann werfen wir einen Blick darauf, wie wir unsere Fehlerbehandlung verstehen. Sie können sich auch das kostenlose Anleitungsvideo „

php Error Handling“ ansehen.

Klasse zur Ausnahmebehandlung in PHP

PHP bietet eine integrierte Ausnahmebehandlungsklasse, nämlich Exception. Diese Klasse enthält einige Funktionen zur Behandlung von Ausnahmen und Fehlern kann gefangen werden.

Exception,这个类包含了一些处理异常的函数,这些函数可以捕获程序异常和错误。

那下面列举出该类中较为常用的函数:

  • getTraceAsString():返回已格式化成字符串的、由函数 getTrace() 函数所产生的信息

  • __toString():产生异常的字符串信息,它可以重载。注意,该函数最前部是两个下划线

  • getMessage():返回异常的消息内容

  • getLine():返回发生错误的代码行号

  • getCode():以数字形式返回异常代码

  • getFile():返回发生异常的文件名

  • getTrace():返回 backtrace() 数组

捕获程序中的异常

程序中的异常出现一般不会自己显现出来,这时候我们可以通过try catch 语句和 throw Die folgenden Funktionen werden in dieser Klasse am häufigsten verwendet:

  • getTraceAsString(): Gibt formatierte Zeichen-String-Informationen zurück generiert durch die Funktion getTrace()

  • __toString(): String-Informationen, die Ausnahmen generieren, sie können überladen werden. Beachten Sie, dass am Anfang dieser Funktion zwei Unterstriche stehen

  • getMessage(): Gibt den abnormalen Nachrichteninhalt zurück

  • getLine () : Gibt die Codezeilennummer zurück, in der der Fehler aufgetreten ist


  • getCode(): Gibt den Ausnahmecode in numerischer Form zurück
  • getFile(): Gibt den Dateinamen zurück, in dem die Ausnahme aufgetreten ist

  • getTrace(): Gibt das backtrace()-Array zurück

    li>

Fünf Minuten, um Ihnen zu zeigen, was Ausnahmebehandlung in PHP ist

Ausnahmen im Programm abfangen

Ausnahmen im Programm werden im Allgemeinen nicht von selbst angezeigt. Zu diesem Zeitpunkt können wir die Anweisung try Catch verwenden throw Schlüsselwort zu Um den Zweck des Abfangens von Ausnahmen im Programm zu erreichen. Die try-catch-Anweisung ähnelt der Flusskontrollanweisung. Das Schlüsselwort throw kann eine Ausnahme im Programm durch eine Struktur ähnlich der bedingten Auswahl erfassen. Das Syntaxformat der Try-Catch-Anweisung lautet wie folgt:

try{
    // 可能出现异常或错误的代码,比如文件操作、数据库操作等
}catch(Exception $a){    // $a 为一个异常类的对象
    // 输出错误信息
}

Wenn wir Programmausnahmen abfangen müssen, müssen wir den abzufangenden Code in den Try-Codeblock einfügen. In der obigen Syntax sollte jeder Versuch at haben mindestens ein entsprechender Haken. Wenn der Try-Codeblock keine passende Ausnahme abfängt, springt der Code zum letzten Catch und fährt fort.


Darin generierte Ausnahmen können durch die Throw-Anweisung ausgelöst und durch Catch erfasst werden. Wenn eine Ausnahme auftritt, wird der Code dahinter nicht mehr ausgeführt.

Das Beispiel lautet wie folgt:

<?php
    try{
        $err = &#39;抛出异常信息,并跳出 try 语句块&#39;;
        if(is_dir(&#39;./demo&#39;)){
            echo &#39;这里是一些可能会发生异常的代码&#39;;
        }else{
            throw new Exception($err, 20211020);   // 抛出异常
        }
        echo &#39;上面抛出异常的话,这行代码将不会执行,转而执行 catch 中的代码。<br>&#39;;
    }catch(Exception $e){
        echo &#39;捕获异常:&#39;.$e->getMessage().&#39;<br>错误代码:&#39;.$e->getCode().&#39;<br>&#39;;
    }
    echo &#39;继续执行 try catch 语句之外的代码&#39;;
?>

Ausgabeergebnis:


Im obigen Beispiel wird mit der try-Anweisung versucht, festzustellen, ob im aktuellen Verzeichnis ein Verzeichnis mit dem Namen „demo“ vorhanden ist nicht vorhanden, daher wird das Schlüsselwort throw ausgeführt. Es ist eine Ausnahme aufgetreten. Nachdem die Ausnahme gefunden und ausgelöst wurde, werden die verbleibenden Anweisungen der try-Anweisung nicht ausgeführt.

🎜Erstellen Sie Ihre eigene Ausnahmeklasse🎜🎜🎜🎜🎜 Sie können einige Ausnahmen in PHP im Voraus definieren, da PHP selten aktiv Ausnahmen auslöst, die wir mit if-else behandeln können . Mögliche Ausnahmen beurteilen und Ausnahmen manuell auslösen. In PHP können wir häufig die Ausnahmeklassen verwenden, die wir selbst erstellen. 🎜🎜🎜Beispiele sind wie folgt: 🎜🎜
<?php
class emailException extends Exception{
    function __toString(){
        return "<b>email is null</b>file:".$this->getFile().&#39;,line:&#39;. $this->getLine();
    }
}
class nameException extends Exception{
}
?>
🎜Im obigen Beispiel sind zwei Ausnahmeklassen definiert, die beide von der Exception-Basisklasse erben. 🎜🎜Im tatsächlichen Geschäft werden wir je nach Bedarf auch unterschiedliche Ausnahmen auslösen. Beispiele sind wie folgt: 🎜
function reg($reg) {
    if (empty($reg[&#39;email&#39;])) {
        throw new emailException("emaill is null", 1);
    }
    if(empty($reg[&#39;name&#39;])) {
        throw new nameException("name is null", 2);
     }
}
🎜Beim Ausführen von Geschäftscode können Sie die if-Anweisung verwenden, um zu bestimmen, wo die Ausnahme auftritt, und sie dann manuell auslösen Im folgenden Beispiel werden verschiedene Ausnahmen je nach Situation erfasst, auch wenn im Programm noch andere Ausnahmen vorhanden sind Blöcke werden ebenfalls übersprungen. Unabhängig davon, ob im Programm eine Ausnahme vorliegt, werden die Anweisungen in „finally“ ausgeführt. Ein Beispiel ist wie folgt: 🎜🎜
try{
    $reg = array(&#39;phone&#39;=>&#39;1888888888&#39;);
    reg($reg);
} catch(emailException $e) {
    echo $e;
} catch(nameException $e) {
    echo &#39;error msg:&#39; .$e->getMessage().&#39;error code:&#39;.$e->getCode();
} finally {
    echo &#39; finally&#39;;
}
🎜 Wenn Sie mehr über PHP erfahren möchten, können Sie auf „🎜PHP-Video-Tutorial🎜“ klicken, um es zu lernen! 🎜

Das obige ist der detaillierte Inhalt vonFünf Minuten, um Ihnen zu zeigen, was Ausnahmebehandlung in PHP ist. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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