Задать вопрос
sorry_i_noob
@sorry_i_noob

Если я бросаю свое исключение, то я могу указывать любой код? Даже не обзятально 404, если ошибка связана с неудачей в поиске чего-либо?

Здравствуйте. Если я бросаю свое исключение, то я могу указывать любой код? Даже не обзятально 404, если ошибка связана с неудачей в поиске чего-либо? Например, могу вместо 404 указать 188841 (то есть, любое число)?

Я хочу не создавать новый класс исключения, а просто кидать
new Exception('мое сообщение', мой_код);
И в catch проверять код. Плохой это вариант? Как альтернатива классу исключения (который надо написать и подключить к проекту).
  • Вопрос задан
  • 96 просмотров
Подписаться 1 Простой 1 комментарий
Пригласить эксперта
Ответы на вопрос 5
webinar
@webinar Куратор тега PHP
Учим yii: https://youtu.be/-WRMlGHLgRg
Вот список кодов основных:
https://ru.wikipedia.org/wiki/Список_кодов_состоян...
В вашем случае наверное должно быть все же или 404 или 500
Если страница имеет вид domen.com/search/талалайка - то наверное 404 надо возвращать, что бы поисковики понимали, что такой страницы нет.
Если domen.com/search?q=талалайка тогда наверное должна быть не ошибка а пустой результат поиска.
А если реально ошибка - то 500.
Отсутствие результатов поиска - не ошибка
Ответ написан
flapflapjack
@flapflapjack
на треть я прав
spoiler
404 бросает веб-сервер же, а не PHP.

404 бросает апач, или nginx. И вы с PHP никак не укажете какую ошибку бросить апачу.
Ответ написан
@ipokos
Если имеете ввиду изменить возвращаемую ошибку сервером, то нет. Если имеете ввиду отобразить пользователю другую ошибку, то пользователю вы отображаете что хотите в зависимости от пойманой ошибки.
Ответ написан
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
Тут еще и вопрос - "ошибка связана с неудачей в поиске чего-либо" - если это какая-то выборка пустая, то никакого особого ответа не нужно, просто пишете что "ничего не найдено", код 200. Ексепшн бросаете только в случае когда допустим файл ДОЛЖЕН быть по логике приложения(например на него есть запись в бд), но физически его на сервере нет. Это уже исключение, в случае же пустого результата поиска никакого эксепшна нет, это не исключительная, а штатная ситуация.
Ответ написан
Комментировать
dmitriylanets
@dmitriylanets
веб-разработчик
Один класс исключения для всех ошибок это глупость, вы не сможете нормально их ловить
В вашем случае SearchException, PageNotFoundException
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы