Heim > Artikel > Backend-Entwicklung > Der Unterschied zwischen Fehlermeldungen und Ausnahmemeldungen in PHP
Was ist eine Ausnahme in PHP:
Eine unerwartete Situation tritt auf, wenn das Programm ausgeführt wird, und dies ist zulässig (Sie tun es nicht). Ich möchte auch nicht, dass es passiert) Abnormale Situation) Aber es ist eine abnormale Situation. Nach unserer normalen Logik sollten Fehler nicht auftreten, aber Fehler, die trotzdem auftreten, sind Fehler in der Logik und in den Geschäftsprozessen, nicht in der Kompilierung oder Syntax. Fehler auf.
Was ist ein Fehler in PHP? Die meisten seiner eigenen Probleme werden durch eine falsche Syntax und Serverumgebung verursacht, was dazu führt, dass der Compiler die Prüfung nicht besteht oder sogar nicht ausgeführt werden kann. Warnung und Hinweis sind beide Fehler, aber ihre Ebenen sind unterschiedlich und Fehler können nicht durch Try-Catch abgefangen werden.
Die obige Aussage hat Voraussetzungen:In PHP, weil man in anderen Sprachen keine solchen Schlussfolgerungen ziehen kann, also Ausnahmen und Fehler. Das Sprichwort hat unterschiedliche Bedeutungen in verschiedenen Sprachen.
In PHP werden alle Fehler oder abnormaler Code als Fehler behandelt und nicht in Form von Ausnahmen ausgelöst. Es gibt jedoch auch Situationen, in denen Ausnahmen und Fehler gleichzeitig ausgelöst werden (it wird gesagt, dass ich kein passendes Beispiel gefunden habe). Mit anderen Worten: Wenn Sie Ausnahmen automatisch abfangen möchten, wenn die Datenbankverbindung fehlschlägt, wird dies nicht funktionieren, da es sich nicht um eine Ausnahme, sondern um einen Fehler handelt. In Java ist das jedoch anders. Viele Verhaltensweisen, die nicht den Erwartungen entsprechen, werden als Ausnahmen erfasst.
Ist die PHP-Ausnahmebehandlung nutzlos? Aus der obigen Analyse können wir ersehen, dass PHP keine Ausnahmen aktiv auslösen kann, aber Sie können Ausnahmen manuell auslösen, wenn Sie wissen, wo es passieren wird, wenn etwas schief geht , können Sie nicht einfach if else hinzufügen, um das Problem zu lösen? Warum müssen Sie eine Ausnahme manuell auslösen? Da sie manuell ausgelöst werden kann, beweist dies, dass dies keine Ausnahme ist, sondern erwartet wird.Nach meinem Verständnis ist die PHP-Ausnahmebehandlung hier nutzlos (nicht unbedingt richtig). Daher ist der Ausnahmemechanismus von PHP nicht so perfekt, aber alle Studenten, die das Framework verwendet haben, kennen diese Situation: Es ist in Ordnung, den Code direkt zu Beginn der „automatischen“ Ausnahmeerfassung von PHP im Framework zu schreiben ?
Studenten, die den Quellcode gelesen haben, wissen, dass das Framework drei Funktionen enthält: register_shutdown_function, set_error_handler, set_Exception_handler, drei schwarze Technologien. Durch diese Funktionen können wir die falsche automatische Erfassung von Ausnahmen und Fehlern durch PHP realisieren.
Fehler in Form von Ausnahmen auslösen (kann nicht vollständig ausgelöst werden)
Aus der obigen Erklärung wissen wir, dass Fehler in PHP nicht in Form von Ausnahmen erfasst werden können, aber wir müssen Let Sie werfen, was den Einflussbereich von try-catch erweitert hat. Wir haben zuvor über die Methode set_error_handler () gesprochen. Sie erfasst Fehler, sodass wir sie dann zum Erfassen verwenden können die Form einer Ausnahme, ok, versuchen Sie es mit der folgenden Schreibweise:
<?php set_error_handler('error'); function error($type, $message, $file, $line) { throw new \Exception($message . '错误当做异常'); } $num = 0; try { echo 1/$num; } catch (Exception $e){ echo $e->getMessage(); } ?>
In PHP ist es am besten, Ausnahmen nicht einfach direkt dort auszulösen, wo Fehler auftreten können. In einigen Frameworks können die oben genannten Methoden, Ausnahmen und Fehler umgeschrieben werden normal geworfen werden
Das obige ist der detaillierte Inhalt vonDer Unterschied zwischen Fehlermeldungen und Ausnahmemeldungen in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!