DevCore.net

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:

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.