В сегодняшнем коротком совете по видео мы рассмотрим процесс настройки пользовательских обработчиков ошибок с помощью PHP. Попутно мы также узнаем, как регистрировать и отправлять эти потенциальные ошибки нам самим. Таким образом, даже когда ваше веб-приложение будет развернуто, вы будете первым, кто узнает об ошибке.
вступление
Источник
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
<?php
// Our custom error handler
function nettuts_error_handler($number, $message, $file, $line, $vars)
{
$email = «
<p>An error ($number) occurred on line
<strong>$line</strong> and in the <strong>file: $file.</strong>
<p> $message </p>»;
$email .= «<pre>» .
$headers = ‘Content-type: text/html;
// Email the error to someone…
error_log($email, 1, ‘you@youremail.com’, $headers);
// Make sure that you decide how to respond to errors (on the user’s side)
// Either echo an error message, or kill the entire project.
// The code below ensures that we only «die» if the error was more than
// just a NOTICE.
if ( ($number !== E_NOTICE) && ($number < 2048) ) {
die(«There was an error. Please try again later.»);
}
}
// We should use our custom function to handle errors.
set_error_handler(‘nettuts_error_handler’);
// Trigger an error… (var doesn’t exist)
echo $somevarthatdoesnotexist;
|
Вывод
Если вы решили установить свои собственные обработчики ошибок, убедитесь, что вы:
- Определите, стоит ли
die()и убить страницу. - Обеспечить некоторый уровень обратной связи для пользователя. Если произошла фатальная ошибка, дайте им знать в той или иной форме!
- Вы не хотите по электронной почте сами ошибки при отладке. Вы можете создать переменную
$debugкоторая, если задано значениеtrue, пропустит процесс отправки сообщения об ошибке по электронной почте и вместо этого выведет ошибку на страницу. Если вам нужен фрагмент кода для этого, просто дайте нам знать!