PHP-Warning abfangen

Man sollte potenzielle Warning-Kandidaten wie z. B. file_get_contents nicht mit dem @-Operator unterdrücken (das @ unterdrückt alle Fehlermeldungen), sondern sollte das so lösen, wie es auch im Zend-Framework gemacht wird:

set_error_handler('handleError');
file_get_contents($url);
restore_error_handler();

Das kann natürlich auch ein Errorhandler innerhalb einer Klasse sein. Der Handler selbst kann in rudimentärer Form so aussehen:

function handleError($errno, $errstr, $errfile, $errline, array $errcontext)
{
  // error was suppressed with the @-operator
  if (0 === error_reporting())
    return false;
  throw new ErrorException($errstr, 0, $errno, $errfile, $errline);
}

Nun hat man den Vorteil, dass man mit einem try-catch-Block flexibler reagieren.

Kommentar verfassen