Главная->Уроки по php->Обработка ошибок в PHP

Обработка ошибок в PHP

23 Фев в 00:56

Обработка ошибок в PHP Выпуская сайт в Интернет, 99.9% того, что там содержится масса ошибок, причём именно масса. Вроде Вы всё проверили, вроде всё протестировали, однако, ошибки всё равно не избежны, и очень важно получать о них своевременную информацию. И вот об обработке ошибок в PHP мы и поговорим в этой статье. Значит, наша с Вами задача получать каким-то образом уведомления о возникающих проблемах. Давайте разберём такой простой код: <?php /* Функция по обработке ошибок */ function handlerErrors($code, $msg, $file, $line) { mail("admin@mysite.ru", "Произошла ошибка", "$msg ($code) в файле $file (строка $line)"); // Отправляем e-mail администратору о возникновении ошибки /* Здесь можно сделать редирект на страницу с информацией о том, "что ошибка получена, и скоро она будет исправлена" (так поступает множество серьёзных сервисов, по типу mail.ru и прочих) */ } set_error_handler(handlerErrors); // Устанавливаем наш обработчик ошибок $mysqli = new mysqli("localhost", "root", "", "mydb"); // Пытаемся подключиться к базе данных if (!$mysqli) { /* Если подключение не удалось, то вызываем ошибку */ trigger_error("No connect"); } ?> В результате, Вы можете получить на свой e-mail, например, следующее: "mysqli::mysqli() [<a href='mysqli.mysqli'>mysqli.mysqli</a>]: (28000/1045): Access denied for user 'root'@'localhost' (using password: YES) (2) в файле Z:\home\test.local\www\index.php (строка 8)". При этом пользователь никаких ошибок не увидит, если Вы этого, конечно, не захотите, а Вы, в свою очередь, получите письмо и сможете принять меры по устранению ошибки. Так же обратите внимание, что данная ошибка будет размещена в log-файле, поэтому, в целом, письмо отправлять и необязательно, достаточно регулярно просматривать log с ошибками. А на этапе создания сайта Вам нужно как можно больше найти "опасных" мест, где могут возникнуть ошибки и поставить там проверку и вызов trigger_error() в случае её возникновения.