PHP-Warnungen mithilfe von Fehlerbehandlungstechniken abfangen und behandeln
In PHP werden Warnungen nicht als Ausnahmen behandelt, was zu Herausforderungen führt, wenn eine spezifische Behandlung erforderlich ist Warnungen von nativen Funktionen wie dns_get_record, die Warnungen bei erfolglosen DNS-Abfragen auslösen.
Um dieses Problem zu beheben, gibt es zwei primäre Ansätze existieren:
1. Fehlerhandler festlegen und wiederherstellen:
Eine Methode besteht darin, vorübergehend einen benutzerdefinierten Fehlerhandler mit set_error_handler() festzulegen, bevor der Code ausgeführt wird, der möglicherweise Warnungen generiert. Nach dem Aufruf kann der ursprüngliche Fehlerbehandler mit „restore_error_handler()“ wiederhergestellt werden. Dies ermöglicht das Ignorieren oder Protokollieren bestimmter Fehler, wie unten gezeigt:
set_error_handler(function() { /* ignore errors */ }); dns_get_record(); restore_error_handler();
2. Fehler in Ausnahmen umwandeln:
Mit set_error_handler() in Verbindung mit der ErrorException-Klasse ist es möglich, PHP-Fehler in Ausnahmen umzuwandeln. Dies ermöglicht die Fehlerbehandlung mithilfe von Try-Catch-Blöcken:
set_error_handler(function($errno, $errstr, $errfile, $errline) { if (0 === error_reporting()) { return false; } throw new ErrorException($errstr, 0, $errno, $errfile, $errline); }); try { dns_get_record(); } catch (ErrorException $e) { // ... }
Unterdrückung vs. Fehlerbehandlung:
Während es verlockend ist, die Warnung mit dem @-Operator zu unterdrücken, davon wird im Allgemeinen abgeraten, da Fehler und Warnungen aus einem bestimmten Grund vorliegen und behandelt und nicht unterdrückt werden sollten.
Das obige ist der detaillierte Inhalt vonWie kann ich PHP-Warnungen effektiv abfangen und behandeln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!