Телефон: +7 (926) 245-03-63

Как сделать обработчик ошибок на PHP?

Следующая статья: Excel на PHP

@ - атавизм.

Для отладки действительно лучше использовать error_reporting и перехватывать стандартный обработчик ошибок php.

Пример - кусок из моей бибилотеки.

if (DEBUG_MODE)
{ // All messages printed into browser window
  // error_reporting(E_ALL & ~E_NOTICE);
  error_reporting(E_ALL);
}
else
{ error_reporting(0);
  require_once('classes/bavlog.php');
  set_error_handler(bavErrorHandler);
  // override PHP's main error handler function this should NOT be called directly
  function nmErrorHandler($errno,$errmsg,$errfile,$errline,$vars)
  { …
    … some analizer of error
  }
}

А собственный вывод сообщений об ошибках и отладочной информации сделать не echo, print() а через trigger_error().

Подробности об использовании собственного обработчика есть в документации.

А подавить сообщения об ошибках можно, указывая @ перед функцией блокирует вывод сообщения об ошибке

Если track_errors включен то последнее сообщение об ошибке сохраняется в глобальной переменной $php_errormsg