Обработка ошибок: случаи уведомления на e-mail, остановки работы скрипта.

Гриша К.

Новичок
Обработка ошибок: случаи уведомления на e-mail, остановки работы скрипта.

Здравствуйте.
Изучил много информации по обработке ошибок, опробовал разные варианты, но остались некоторые неясные мне вопросы, возможно вы мне сможете, что-то подсказать.

Использую обработчик ошибок (по аналогии с http://phpclub.ru/detail/article/2002-10-03) с помощью функции set_error_handler().

Установки в рабочем режиме:
PHP:
// Запрещение вывода ошибок; обработчик ошибок; 
// разрешение записи в лог-файл; путь лог-файла

ini_set ("display_errors", 0);
set_error_handler('my_error_handler');
ini_set("log_errors", "1");
ini_set("error_log", $config['RootPath'].'admin/log/error.log');
Вопросы:
(1) Скажите пожалуйста отправляете ли вы уведомления на e-mail об ошибках (например: error_log($message, 1, "[email protected]")), при каких ошибках вы это делаете, каким-либо образом ограничиваете ли вы кол-во отправляемых уведомлений?
(2) Останавливаете ли вы работу скрипта (exit) при каки-либо ошибках?
Если например нет соединения с БД, можно на текущей странице вывести уведомление об этом, оставляя при этом содержание этой страницы (все что выводится не из БД),
либо например завершить работу скрипта и вывести только уведомление (или редирект на соответсвующую страницу сделать)?
 

Rammstein

PHPClub::News
Сразу на два:
всю логику оставляю на исключения, а уж смотря какое исключение - то и делаю. Всякие там отказы БД безусловно нужно сопровождать сообщением на мыло, но нужно как-то убеждаться, что это действительно отказ, а не превышение количества подключение (тогда полный почтовый ящик будет.
 

Гриша К.

Новичок
Rammstein, спасибо за ответ.

Я понял, что при возникновении пользовательских ошибок (E_USER_ERROR) следует завершать работу скрипта и желательно отправлять сообщение на e-mail. Т.е. сам php при возникновение ошибки соединения с БД, например когда неверно указывается имя столбца, завершает работу скрипта, также и мы делаем - trigger_error(mysql_error(), E_USER_ERROR), и дальше например отображаем сообщение о том, что страницу невозможно отобразить.

Error Handling and Logging Functions: http://ru.php.net/manual/ru/ref.errorfunc.php

-~{}~ 18.06.06 17:28:
 
Сверху