Архитектура обработки ошибок приложения

Yaroslav PHPDev

Новичок
Всем привет.
Помогите верно организовать обработку ошибок в CMS системе.
В системе есть модули, как эти модули должны говорить об ошибках? куда их выбрасывать?
Как разделять системные ошибки и ошибки приложения.
Понимаю что все это логично делать через exceptions, но опять же как это можно грамотно построить? Какой слой за это должен отвечать?
Ссылки, статьи где можно почитать?
 

Егор

Новичок
Имеешь в виду ошибки Php и MySQL ?
Если да: тогда записывать их например в таблицу в бд errors, например, указывая тип ошибки php,mysql,html
 

whirlwind

TDD infected, paranoid
Ошибки не надо обрабатывать. Нужно писать без ошибок. Ошибки, не поддающиеся обработке называются исключениями.
 

Yaroslav PHPDev

Новичок
Ошибки не надо обрабатывать. Нужно писать без ошибок. Ошибки, не поддающиеся обработке называются исключениями.
Ошибки бывают разные, и некоторые из них нужно обработать и вывести. Например сообщение о несуществующей новости, или сообщение о том что такой пользователь существует в системе. Это все ошибки приложения, и их тоже нужно обрабатывать, вопрос как?, пока не очень понятен.
 

Yaroslav PHPDev

Новичок
Имеешь в виду ошибки Php и MySQL ?
Если да: тогда записывать их например в таблицу в бд errors, например, указывая тип ошибки php,mysql,html
Не вижу смысла писать все в бд. Есть Логи и их достаточно. Тут вопрос о том как примерно построить механизм обработки разных ошибок, фаталов, исключений, ошибок приложения через единый механизм, какие то архитектурные советы?
 

whirlwind

TDD infected, paranoid
Yaroslav PHPDev ситуация, когда запрошена несуществующая новость - это не ошибка. Ошибка это когда вместо одной новости вывели другую, то есть ошиблись и следовательно программа работает не так, как задумано. Какие могут быть обработки несуществующей новости? Создать новость на лету? Если да, то это частный случай, а не ошибка. Типично несуществующая новость это исключение. В модели выбрасываем исключение, вокруг входа во фронт контроллер ставим try/catch и оформляем все необрабатываемые ситуации в виде сообщения об ошибке.
 

Yaroslav PHPDev

Новичок
Как я иго
Yaroslav PHPDev ситуация, когда запрошена несуществующая новость - это не ошибка. Ошибка это когда вместо одной новости вывели другую, то есть ошиблись и следовательно программа работает не так, как задумано. Какие могут быть обработки несуществующей новости? Создать новость на лету? Если да, то это частный случай, а не ошибка. Типично несуществующая новость это исключение. В модели выбрасываем исключение, вокруг входа во фронт контроллер ставим try/catch и оформляем все необрабатываемые ситуации в виде сообщения об ошибке.
Ошибка ошибке рознь. Одни ошибки я хочу показывать пользователям, другие я хочу логировать, третьи я хочу отправлять на почту или еще куда нибудь, вопрос о том как грамотно это реализовать. Бросить исключение и перехватить в catch это понятно, но у меня вопрос больше по архитектуре
 

Вурдалак

Продвинутый новичок
Так показывай, логируй, отправляй на почту или ещё куда-нибудь. В чём твоя проблема, парень? Складывается впечатление, что ты сам не знаешь что тебе нужно.
 

whirlwind

TDD infected, paranoid
>Бросить исключение и перехватить в catch это понятно, но у меня вопрос больше по архитектуре

Ты форумом не ошибся? Здесь такую архитектуру не обсуждают.
 

Lirik

Новичок
whirlwind
объяснил бы базово как сделать лучше, человек спрашивает, значит хочет научиться, а вы его все тычете что он "дерьмо"
 
Сверху