Heim Backend-Entwicklung PHP-Tutorial Ein Blick auf die Ausnahme- und Fehlerbehandlung von PHP

Ein Blick auf die Ausnahme- und Fehlerbehandlung von PHP

Jun 06, 2020 pm 03:37 PM
处理异常


Ein Blick auf die Ausnahme- und Fehlerbehandlung von PHP

Ausnahmen und Fehler

Beispiel:

  $num = 0;
    try {
        echo 1/$num;
    } catch (Exception $e){
        echo $e->getMessage();//并不能执行到这里
    }
    //说明try{}catch{}是用于捕获异常的,而错误是不能捕获到的。
 
    //手动抛出异常进行捕获
    $num = 0;
    try {
        if($num == 0){
            //通过if判断可以处理错误,手动抛出异常(如何实现自动捕获错误呢,需结合三个php内置函数)
            throw new Exception('除数为零');
        }
        echo 1/$num;
    } catch (Exception $e){
        echo $e->getMessage();
    }
Nach dem Login kopieren

Was ist Ausnahme

Eine Situation, die nicht den Erwartungen entspricht, tritt auf, wenn das Programm ausgeführt wird. Es darf passieren (Sie möchten nicht, dass es zu einer abnormalen Situation kommt), aber es ist eine abnormale Situation. Gemäß unserer normalen Logik sind Fehler, die nicht auftreten sollten, aber dennoch auftreten, Fehler in der Logik und in Geschäftsprozessen, keine Kompilierungs- oder Syntaxfehler.

Was ist ein Fehler?

Es ist ein Problem des PHP-Skripts selbst und wird meistens durch eine falsche Syntax verursacht Serverumgebung, was dazu führt, dass der Compiler die Prüfung nicht besteht oder sogar nicht funktioniert. Warnung und Hinweis sind beide Fehler, aber ihre Ebenen sind unterschiedlich und Fehler können nicht durch Try-Catch erfasst werden

Fehlerklassifizierung

Schwerwiegender Fehler: Schwerwiegender Fehler (Skript beendet)

E_ERROR // Schwerwiegender Ausführungsfehler, der Fehler kann nicht behoben werden und die Ausführung des Skripts wird angehalten

E_CORE_ERROR // Während des Initialisierungsprozesses beim PHP-Start Schwerwiegender Fehler

E_COMPILE_ERROR // Schwerwiegender Fehler zur Kompilierungszeit, als ob ein E_ERROR von der Zend-Skript-Engine generiert worden wäre

E_USER_ERROR // Benutzerdefinierte Fehlermeldung. Wie die Verwendung der PHP-Funktion trigger_error (der Fehlertyp ist auf E_USER_ERROR eingestellt)

Parse-Fehler: Parsing-Fehler bei der Kompilierungszeit, Syntaxfehler (Skript wird nicht ausgeführt)

E_PARSE // Syntax-Parsing bei der Kompilierung Fehler

Warnungsfehler: Warnfehler (es werden nur Eingabeaufforderungsinformationen ausgegeben, das Skript bricht die Ausführung nicht ab)

E_WARNING // Laufzeitwarnung (nicht schwerwiegender Fehler).

E_CORE_WARNING // Warnung (nicht schwerwiegender Fehler), die während des PHP-Initialisierungsstarts aufgetreten ist.

E_COMPILE_WARNING // Kompilierungswarnung

E_USER_WARNING // Vom Benutzer generierte Warnmeldung

Hinweisfehler: Benachrichtigungsfehler (es werden nur Benachrichtigungsinformationen angegeben, die Ausführung des Skripts wird nicht beendet)

E_NOTICE // Laufzeitbenachrichtigung. Zeigt an, dass das Skript auf eine Situation stößt, die als Fehler erscheinen kann.

E_USER_NOTICE // Vom Benutzer generierte Benachrichtigungsinformationen.

Typ 5 ist ein Fehler der Stufe ERROR, der direkt zum Beenden des PHP-Programms führt. Sie sind ERROR = E_ERROR |. E_COMPILE_ERROR |. E_PARSE

Verwenden Sie try {} e){} Um Ausnahmen und Fehler abzufangen, müssen Sie drei Funktionen verwenden:

// 注册一个会在php中止时执行的函数
    register_shutdown_function('myShutdownFunction');
    function myShutdownFunction()
    {
        if ($error = error_get_last()) {
            var_dump(&#39;<b>register_shutdown_function: Type:&#39; . $error[&#39;type&#39;] . &#39; Msg: &#39; . $error[&#39;message&#39;] . &#39; in &#39; . $error[&#39;file&#39;] . &#39; on line &#39; . $error[&#39;line&#39;] . &#39;</b>&#39;);
        }
    }
Nach dem Login kopieren
//注册异常处理函数, 没有捕获处理的异常,将统一再这里处理
    set_exception_handler(&#39;myException&#39;);
    function myException($exception)
    {
        var_dump("<b>set_exception_handler: Exception: " . $exception->getMessage()  . &#39;</b>&#39;);
    }
Nach dem Login kopieren

 //注册错误处理函数
    set_error_handler(&#39;myError&#39;);
    function myError($type, $message, $file, $line)
    {
        //var_dump(&#39;<b>set_error_handler: &#39; . $type . &#39;:&#39; . $message . &#39; in &#39; . $file . &#39; on &#39; . $line . &#39; line .</b><br />&#39;);
        throw new Exception($message);
    }
Nach dem Login kopieren


Das Prinzip, alle Fehler abzufangen

Aus set_error_handler () ist ersichtlich, dass es einige Fehler abfangen kann, jedoch keine Fehler auf Systemebene wie E_ERROR, E_PARSE und andere, dieser Teil jedoch von register_shutdown_function() erfasst werden. Daher kann die Kombination beider sehr gute Funktionen ergeben.

Zusammenfassung

Drei Funktionen zum automatischen Erfassen von Ausnahmen und Fehlern

set_error_handler () kann nur einige Fehler erfassen

register_shutdown_function () kann in Kombination mit der Funktion set_error_handler() alle Fehler abfangen

set_Exception_handler () wird zum Abfangen von Ausnahmen verwendet

error_get_last () und beendet schließlich die Fehlermeldung

In der Funktion, die den Fehler abfängt, lösen Sie die Ausnahme manuell aus, d. h. implementieren Sie set_Exception_handler, um den Fehler abzufangen.

Empfohlenes Tutorial: „

PHP-Video-Tutorial

Das obige ist der detaillierte Inhalt vonEin Blick auf die Ausnahme- und Fehlerbehandlung von PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat -Befehle und wie man sie benutzt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Erklären Sie JSON Web Tokens (JWT) und ihren Anwendungsfall in PHP -APIs. Erklären Sie JSON Web Tokens (JWT) und ihren Anwendungsfall in PHP -APIs. Apr 05, 2025 am 12:04 AM

JWT ist ein offener Standard, der auf JSON basiert und zur sicheren Übertragung von Informationen zwischen Parteien verwendet wird, hauptsächlich für die Identitätsauthentifizierung und den Informationsaustausch. 1. JWT besteht aus drei Teilen: Header, Nutzlast und Signatur. 2. Das Arbeitsprinzip von JWT enthält drei Schritte: Generierung von JWT, Überprüfung von JWT und Parsingnayload. 3. Bei Verwendung von JWT zur Authentifizierung in PHP kann JWT generiert und überprüft werden, und die Funktionen und Berechtigungsinformationen der Benutzer können in die erweiterte Verwendung aufgenommen werden. 4. Häufige Fehler sind Signaturüberprüfungsfehler, Token -Ablauf und übergroße Nutzlast. Zu Debugging -Fähigkeiten gehört die Verwendung von Debugging -Tools und Protokollierung. 5. Leistungsoptimierung und Best Practices umfassen die Verwendung geeigneter Signaturalgorithmen, das Einstellen von Gültigkeitsperioden angemessen.

Erklären Sie das Konzept der späten statischen Bindung in PHP. Erklären Sie das Konzept der späten statischen Bindung in PHP. Mar 21, 2025 pm 01:33 PM

In Artikel wird die in PHP 5.3 eingeführte LSB -Bindung (LSB) erörtert, die die Laufzeitauflösung der statischen Methode ermöglicht, um eine flexiblere Vererbung zu erfordern. Die praktischen Anwendungen und potenziellen Perfo von LSB

Rahmensicherheitsmerkmale: Schutz vor Schwachstellen. Rahmensicherheitsmerkmale: Schutz vor Schwachstellen. Mar 28, 2025 pm 05:11 PM

In Artikel werden wichtige Sicherheitsfunktionen in Frameworks erörtert, um vor Schwachstellen zu schützen, einschließlich Eingabevalidierung, Authentifizierung und regelmäßigen Aktualisierungen.

Wie sende ich eine Postanforderung mit JSON -Daten mithilfe der Curl -Bibliothek von PHP? Wie sende ich eine Postanforderung mit JSON -Daten mithilfe der Curl -Bibliothek von PHP? Apr 01, 2025 pm 03:12 PM

Senden von JSON -Daten mithilfe der Curl -Bibliothek von PHP in der PHP -Entwicklung müssen häufig mit externen APIs interagieren. Eine der gängigen Möglichkeiten besteht darin, die Curl Library zu verwenden, um Post � ...

Anpassung/Erweiterung von Frameworks: So fügen Sie benutzerdefinierte Funktionen hinzu. Anpassung/Erweiterung von Frameworks: So fügen Sie benutzerdefinierte Funktionen hinzu. Mar 28, 2025 pm 05:12 PM

In dem Artikel werden Frameworks hinzugefügt, das sich auf das Verständnis der Architektur, das Identifizieren von Erweiterungspunkten und Best Practices für die Integration und Debuggierung hinzufügen.

Beschreiben Sie die soliden Prinzipien und wie sie sich für die PHP -Entwicklung anwenden. Beschreiben Sie die soliden Prinzipien und wie sie sich für die PHP -Entwicklung anwenden. Apr 03, 2025 am 12:04 AM

Die Anwendung des soliden Prinzips in der PHP -Entwicklung umfasst: 1. Prinzip der Einzelverantwortung (SRP): Jede Klasse ist nur für eine Funktion verantwortlich. 2. Open and Close Principle (OCP): Änderungen werden eher durch Erweiterung als durch Modifikation erreicht. 3.. Lischs Substitutionsprinzip (LSP): Unterklassen können Basisklassen ersetzen, ohne die Programmgenauigkeit zu beeinträchtigen. 4. Schnittstellen-Isolationsprinzip (ISP): Verwenden Sie feinkörnige Schnittstellen, um Abhängigkeiten und nicht verwendete Methoden zu vermeiden. 5. Abhängigkeitsinversionsprinzip (DIP): Hoch- und niedrige Module beruhen auf der Abstraktion und werden durch Abhängigkeitsinjektion implementiert.

Wie funktioniert die Session -Entführung und wie können Sie es in PHP mildern? Wie funktioniert die Session -Entführung und wie können Sie es in PHP mildern? Apr 06, 2025 am 12:02 AM

Die Hijacking der Sitzung kann in den folgenden Schritten erreicht werden: 1. Erhalten Sie die Sitzungs -ID, 2. Verwenden Sie die Sitzungs -ID, 3. Halten Sie die Sitzung aktiv. Zu den Methoden zur Verhinderung der Sitzung der Sitzung in PHP gehören: 1. Verwenden Sie die Funktion Session_regenerate_id (), um die Sitzungs -ID zu regenerieren. 2. Store -Sitzungsdaten über die Datenbank, 3. Stellen Sie sicher, dass alle Sitzungsdaten über HTTPS übertragen werden.

See all articles