Как обрабатывать ошибки и исключения php централизованно - PullRequest
0 голосов
/ 17 августа 2010

ранее в PHP 4 я создал собственный обработчик ошибок (ниже), чтобы обрабатывать свои собственные ошибки и общие ошибки PHP. Но теперь PHP 5 вводит исключения, т.е. я использую PDO для манипулирования базой данных, и я не уверен, как обрабатывать как общие ошибки PHP, так и эти исключения?

function errorHandler($errno, $errstr, $errfile, $errline){  
  switch ($errno) {
    case E_USER_ERROR:
    // Send an e-mail to the administrator
    error_log("Error: $errstr \n Fatal error on line $errline in file $errfile \n", DEST_EMAIL, ADMIN_EMAIL);

  // Write the error to our log file
  error_log("Error: $errstr \n Fatal error on line $errline in file $errfile \n", DEST_LOGFILE, LOG_FILE);
  break;

    case E_USER_WARNING:
    // Write the error to our log file
    error_log("Warning: $errstr \n in $errfile on line $errline \n", DEST_LOGFILE, LOG_FILE);
    break;

    case E_USER_NOTICE:
    // Write the error to our log file
  error_log("Notice: $errstr \n in $errfile on line $errline \n", DEST_LOGFILE, LOG_FILE);
    break;

    default:
    // Write the error to our log file
    error_log("Unknown error [#$errno]: $errstr \n in $errfile on line $errline \n", DEST_LOGFILE, LOG_FILE);
  break;
}

   // Don't execute PHP's internal error handler
  return TRUE;

}

1 Ответ

1 голос
/ 17 августа 2010

Вы можете использовать set_exception_handler() для обработки необработанных исключений в вашей пользовательской функции.

Однако "правильный" способ будет для вас try ... catch исключением, например, когда делать запрос, и использовать вашу пользовательскую функцию, чтобы зарегистрировать его соответствующим образом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...