set_error_handler(): Warnungen zentral abfangen
set_error_handler() ist praktisch, wenn du PHP-Fehler nicht einfach irgendwo verstreut behandeln willst. Stattdessen reagierst du an einer zentralen Stelle auf Warnungen, Notices oder eigene Fehler.
set_error_handler(function (int $severity, string $message, string $file, int $line): bool {
error_log("[$severity] $message in $file:$line");
return true;
});
Warum das nützlich ist: Du bekommst einheitliches Logging und kannst viele alte Warnungen in saubere Exceptions umwandeln.
set_error_handler(function (int $severity, string $message, string $file, int $line): bool {
throw new ErrorException($message, 0, $severity, $file, $line);
});
Besonders hilfreich bei:
- Legacy-Code
- Bibliotheken mit schwacher Fehlerbehandlung
- Projekten, in denen du Fehler lieber gesammelt als stillschweigend behandeln willst
Wichtig: Nicht jeder Fehler sollte blind zu einer Exception werden. In produktiven Systemen lohnt sich ein klarer Plan, welche Fehler du hart behandelst und welche nur geloggt werden.