Суть обработки ошибок

antson

Новичок
Партнер клуба
мое имхо как разобраться в куче подходов к обработке ошибок.
1.писать чистый код без нотисей и варнингов
$a[$i]++; // плохо
/**
* @return string
*/
function(){
if($error) return ; // плохо null вместо стринг
}

и многое другое о чём предупреждают современные редакторы

2. есть много исторических подходов как из функции уведомить о возникновении ошибки
return false; отрицательное значение и куча других извращений.

В настоящий момент применяется генерация исключений.
и обработка через
try{}catch(инстанс КлассаИсключения1){}catch(инстанс КлассаИсключенияN){}catch(\Exception)
даже обычные ошибки php перезаворачиваются в исключения.
3. ошибка должна быть обработана как можно ранее . Если возможно, то исправлена автоматически.
4. Сообщение пользователю должно объяснять, что он сделал неправильно . а не просто "Упс.."
5. Если по техническим причинам нормальный текст страницы не может быть выведен, и ее индексация не запрещена, нужно выдать http код ответа 50x и заголовок попробуйте через столько-то
 

fixxxer

К.О.
Партнер клуба
Согласен, но все ошибки отлавливаются, фанатальную сложно обернуть. Она только в лог. А страничка ошибки о которой вы, она за пределами пхп.
Если проект хоть сколь-либо серьезный, а не домашная страничка Васи Пупкина и его драной кошки, один фиг все еррор-логи агрегируются через какой-нибудь logstash, какая разница?
 

Фанат

oncle terrible
Команда форума
мое имхо как разобраться в куче подходов к обработке ошибок.
Это на самом деле винегрет из самых разных областей, большая часть из которых не имеет отношения к теме.

В данном случае у человека очень простые и очень правильные вопросы.
А вы как всегда кто во что горазд, каждый кулик про свое болото.

У него нет (здесь) пользовательских ошибок
У него нет исключений, которые надо ловить
У него нет ошибок, которые нужно обрабатывать.

Ему нужен просто базовый подход по работе с ошибками. ЛЮБЫМИ ошибками, которые могут возникнуть при работе приложения.
Это ПРОСТОЙ вопрос, на который дается ПРОСТОЙ ответ:
1. на месте ничего не ловим
2. если хотим красивую картинку - делаем хендлер или настраиваем веб-сервер.
3. всё.
 
Сверху