Heim >Backend-Entwicklung >PHP-Tutorial >Detaillierte Erläuterung der PHP-Fehlerbehandlung im Entwicklungsmodus und Produktmodus

Detaillierte Erläuterung der PHP-Fehlerbehandlung im Entwicklungsmodus und Produktmodus

藏色散人
藏色散人nach vorne
2020-02-03 16:13:582640Durchsuche

Programmfehler sind immer unvermeidlich, auch wenn wir beim Schreiben von Code besonders vorsichtig waren.

Bei der Entwicklung von PHP-Programmen hoffen wir, dass PHP-Fehler so schnell wie möglich angezeigt werden können, um das Debuggen zu erleichtern. Wenn das Programm entwickelt wird und zu einem formalen Produkt wird, hoffen wir, unerwartete Fehlermeldungen im Fehlerprotokoll aufzuzeichnen, anstatt diese Fehlermeldungen den Benutzern anzuzeigen, da Benutzer diese höchstwahrscheinlich verwenden, um Skriptpfade, Datenbankinformationen oder andere Fehlermeldungen offenzulegen deuten auf zerstörerische Hackerangriffe hin.

PHP-Fehlerbehandlung

Wenn das PHP-Skript während der Ausführung auf einen Fehler stößt, wird dieser in Form eines Fehlers behandelt. Einige Fehler führen zum Beenden des Skripts und zum Fortfahren Bei einigen wird dies nicht der Fall sein. Weitere Informationen finden Sie im Handbuch.

Die Fehlerbehandlungsmethode von PHP basiert auf den folgenden Konfigurationsoptionen. Diese Konfigurationen können im Code deklariert oder in der Datei php.ini festgelegt werden. Wenn Sie diese Konfigurationen nicht häufig ändern müssen, empfiehlt es sich, sie in der Datei php.ini festzulegen, um Ihren Code sauberer und prägnanter zu gestalten.

# 是否打印错误信息到浏览器/命令行界面
# 开发模式下建议开启,产品模式下强烈建议关闭
ini_set('display_errors', 'On');
# 是否记录错误信息到日志
# 开发模式和产品模式下都建议开启
ini_set('log_errors', 'On');
# 指定错误信息日志文件,若开启了 log_errors 选项,记得指定日志文件位置
# 要确保执行 php 脚本的系统用户拥有该文件的 write 权限,否则日志无法被写入
ini_set('error_log', '/usr/local/php/errors.log');
# 该选项用以设定错误报告的等级
# 等同于 error_reporting(E_ALL) 
# 无论开发模式还是产品模式下都建议开到E_ALL(报告所有的错误信息)
# 产品模式下也需要设置此选项,因为关闭了 display_errors 并开启了 log_errors
# 所以浏览器/命令行界面不会因此暴露报错信息
ini_set('error_reporting', E_ALL);

Darüber hinaus bietet PHP Entwicklern auch eine integrierte Funktion zum Aufzeichnen benutzerdefinierter Fehlerinformationen in der Fehlerprotokolldatei im Code:

bool error_log ( string $message [, int $message_type = 0 [, string $destination [, string $extra_headers ]]] )

Der erforderliche Parameter ist message. Aufruf dieser Funktion schreibt die Nachricht in die in php.ini definierte Datei error_log.

Benutzerdefinierte Fehlerbehandlung

Darüber hinaus können Benutzer die Skriptausführung auf individuelle Weise über die Funktion verwalten:

mixed set_error_handler ( callable $error_handler [, int $error_types = E_ALL | E_STRICT ] )

If Der Benutzer registriert einen Fehlerhandler und gibt Fehlertypen an. Wenn dann Fehler dieser Fehlertypen auftreten, wird der Standardfehlerhandler

von PHP umgangen (d. h. es wird keine Fehlermeldung ausgegeben, die Fehlermeldung wird nicht protokolliert). aber der Handler in error_handler wird ausgeführt.

Detaillierte Informationen zur Verwendung dieser Funktion finden Sie im Handbuch (https://www.php.net/manual/zh/function.set-error-handler.php)

Empfohlen Verwandte Artikel-Tutorials: PHP-Tutorial

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der PHP-Fehlerbehandlung im Entwicklungsmodus und Produktmodus. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:segmentfault.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen