Zunächst möchte ich darauf hinweisen, dass die PHP-Version des Autors 7.2 ist.
- Übersicht über Ausnahmen und Fehler
- Was ist eine Ausnahme?
- Was ist ein Fehler?
- Ausnahmebehandlung
- Fehlerstufe
- Benutzerdefinierter Fehlerhandler
- set_error_handler()
- set_Exception_handler()
- register_shutdown_function()
- Framework-Fehlerverarbeitung
- Übersicht über Ausnahmen und Fehler
Empfohlen (kostenlos): PHP7
Übersicht über Ausnahmen und Fehler
Was sind Ausnahmen?
Ausnahme bezieht sich auf Situationen, die nicht den Erwartungen entsprechen und sich vom normalen Ablauf während des Programmbetriebs unterscheiden.
Wenn Sie beispielsweise eine Verbindung zur Datenbank herstellen und alle Parameter geschrieben werden, der Link jedoch nicht verbunden werden kann, ist dies nicht wie erwartet.
Kann durch Try-Catch abgefangen werden. Was ist ein Fehler?
Es handelt sich um ein Problem, das auf das PHP-Programm selbst zurückzuführen ist. Es wird normalerweise durch illegale Syntax- und Umgebungsprobleme verursacht, die dazu führen, dass der Compiler die Prüfung nicht besteht oder sogar nicht ausgeführt werden kann.
Bei den Erwärmungen und Hinweisen, auf die man normalerweise stößt, handelt es sich allesamt um Fehler, die jedoch unterschiedlicher Schwere sind.
Zum Beispiel:
- ArithmeticError (Arithmetikfehler)
- ParseError (Analysefehler) Fügen Sie in die geladene Datei „demo.php“ ein ”, oder es liegt ein Syntaxfehler in eval(); vor, der einen Parsingfehler verursacht
- AssertionError (Assertionsfehler) Dieser Fehler wird generiert, wenn Assertion wirksam wird
- pisionByZeroError (Nenner ist Null) Bei Operationen wie Division ist der Nenner 0
- Mit Ausnahme dieser Mehreren Situationen sind alle anderen Ausnahmen in der Zukunft, und Sie wissen nicht, ob die Ausnahme ein Fehler oder eine Ausnahme ist, können Sie einen Fehler wie diesen auslösen: > >
Schwerwiegender Fehler
>Hinweis
>Veraltet
try{ …… }catch(Throwable $e){ …… }Benutzerdefinierter Fehlerhandler
Manchmal kann der mit PHP gelieferte Fehlerhandler unsere Anforderungen nicht vollständig erfüllen. Manchmal müssen wir alle die Ausnahmebehandlung manuell neu schreiben.
set_error_handler()
Funktion zum Hosten des Fehlerhandlers, der angepasst werden kann Fehlerbehandlung Verfahren.
Wenn im Code vor dieser Funktion ein Fehler auftritt, wird unsere benutzerdefinierte Verarbeitungsfunktion nicht aufgerufen, da sie noch nicht registriert wurde.Nach dem Festlegen dieser Funktion ist error_reporting() ungültig.Parse error
>Fatal Error
> Waning
> Notice
>Deprecated
Deprecated 最低级别的错误(不推荐,不建议) 使用一些过期函数的时候会出现,程序继续执行 Notice 通知级别的错误 使用一些未定义变量、常量或者数组key没有加引号的时候会出现,程序继续执行 E_NOTICE // 运行时通知。表示脚本遇到可能会表现为错误的情况. E_USER_NOTICE // 用户产生的通知信息。Waning 警告级别的错误 程序出问题了,需要修改代码!!!程序继续执行 E_WARNING // 运行时警告 (非致命错误)。 E_CORE_WARNING // PHP初始化启动过程中发生的警告 (非致命错误) 。 E_COMPILE_WARNING // 编译警告 E_USER_WARNING // 用户产生的警告信息Fatal Error 错误级别的错误 程序直接报错,需要修改代码!!!中断程序执行,可使用register_shutdown_function()函数在程序终止前触发一个函数 E_ERROR // 致命的运行错误,错误无法恢复,暂停执行脚本 E_CORE_ERROR // PHP启动时初始化过程中的致命错误 E_COMPILE_ERROR // 编译时致命性错,就像由Zend脚本引擎生成了一个E_ERROR E_USER_ERROR // 自定义错误消息。像用PHP函数trigger_error(错误类型设置为:E_USER_ERROR)Parse error 语法解析错误 语法检查阶段报错,需要修改代码!!!中断程序执行,除了修改ini文件,将错误信息写到日志中,什么也做不了 E_PARSE //编译时的语法解析错误
自定义错误处理程序
有的时候,php 中自带的错误处理程序,并不能完全满足我们得需要,大部分时候,我们都需要手动重写异常处理。
php 给我们提供了三个函数来帮助我们来处理,分别是
set_error_handler()
- 函数来托管错误处理程序,可自行定制错误的处理流程。
- 如果此函数之前的代码发生错误,那么不会调用我们自定义的处理函数,因为还未注册
- 设置此函数后 error_reporting() 将会失效
- 以下级别的错误不能由用户定义的函数来处理: E_ERROR、 E_PARSE、 E_CORE_ERROR、 E_CORE_WARNING、 E_COMPILE_ERROR、 E_COMPILE_WARNING 该函数只能捕捉我们的 部分 Warning 和 Note 级别的错误
set_exception_handler()
- 用于没有被捕获的异常处理
register_shutdown_function()
- 作用:注册一个会在php中止时执行的函数
- 捕获PHP的错误:Fatal Error、Parse Error等,这个方法是PHP脚本执行结束前最后一个调用的函数,比如脚本错误、die()、exit、异常、正常结束都会调用,
- 如果拿来用错误处理的时候,需要配合
error_get_last()
它能获取最后发生的错误。
举例 register_shutdown_function('shutdown');function shutdown(){ if ($error = error_get_last()) { var_dump($error); } }$name //没写 ; 号
执行结果 Parse error: syntax error, unexpected ';' in /app/swoole/errorDemo.php on line 34
Fehler auf den folgenden Ebenen können nicht auftreten Wird von benutzerdefinierten Funktionen verwendet. Zu behandeln: E_ERROR, E_PARSE, E_CORE_ERROR, E_CORE_WARNING, E_COMPILE_ERROR, E_COMPILE_WARNING. Diese Funktion kann nur einige unserer Fehler auf Warnungs- und Hinweisebene abfangen /code>
Wird für die Behandlung nicht abgefangener Ausnahmen verwendet
register_shutdown_function()
Funktion: Registrieren Sie eine Funktion, die ausgeführt wird, wenn PHP beendet wirdPHP abfangen Fehler: Schwerwiegender Fehler, Parse-Fehler usw. Diese Methode ist die letzte Funktion, die aufgerufen wird, bevor die PHP-Skriptausführung endet. Beispielsweise werden Skriptfehler, die(), Exit, Ausnahmen und normale Enden aufgerufen Zur Fehlerbehandlung muss mit error_get_last()
zusammengearbeitet werden, um den zuletzt aufgetretenen Fehler abzurufen. rrreee🎜Ausführungsergebnis 🎜Parse-Fehler: Syntaxfehler, unerwartetes ';' in /app/swoole/errorDemo.php in Zeile 34
🎜 Emmmmm Ist das nicht Unsinn? Es ist offensichtlich nicht ausgeführt?🎜🎜Der Grund dafür ist, dass unser PHP vor der Ausführung des Programms zunächst die Syntaxprobleme unseres Programms überprüft. Wenn es keine Probleme gibt, können wir unser Programm ausführen. 🎜🎜Unser obiger Code hat unsere Syntaxprüfung nicht bestanden, daher wurde direkt ein Fehler gemeldet. 🎜🎜Die Frage ist also? Warum melden uns die Frameworks immer Fehler, wenn wir uns im Framework befinden? 🎜🎜Framework-Fehlerbehandlung🎜🎜Im Framework wird sein Code über eine Eintragsdatei geladen. Wenn unser PHP Syntaxfehler erkennt, überprüfen wir nur unsere index.php, wenn dies erforderlich ist, wird dies nicht erkannt. Wenn unser Code einen Fehler macht, wird dieser zur Laufzeit erkannt, sodass unser Framework entsprechend reagieren kann🎜Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Ausnahme- und Fehlerbehandlung in PHP7. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

WebStorm-Mac-Version
Nützliche JavaScript-Entwicklungstools

MantisBT
Mantis ist ein einfach zu implementierendes webbasiertes Tool zur Fehlerverfolgung, das die Fehlerverfolgung von Produkten unterstützen soll. Es erfordert PHP, MySQL und einen Webserver. Schauen Sie sich unsere Demo- und Hosting-Services an.

SublimeText3 Linux neue Version
SublimeText3 Linux neueste Version

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor