За последние 24 часа нас посетили 22338 программистов и 1013 роботов. Сейчас ищут 660 программистов ...

Исключения в PHP ООП

Тема в разделе "PHP для новичков", создана пользователем Konstant1n, 18 апр 2018.

  1. Konstant1n

    Konstant1n Активный пользователь

    С нами с:
    14 авг 2017
    Сообщения:
    273
    Симпатии:
    1
    Адрес:
    Волгоград
    Доброго дня!
    Пишу сайт на паттерне MVC. Есть модели, вьюхи, контроллеры.
    Как правильно работать с исключениями в такой ситуации?
    Исключения выбрасывать в моделях, а обрабатывать в контроллерах?
     
  2. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    где хочешь
    ты смысл исключений понимаешь?
     
  3. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.745
    Симпатии:
    1.319
    Адрес:
    Лень
    неа, в чем изюменка ?:)
     
  4. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    изюминка в том, что исключение позволяет выйти из функции не в то же место в коде, где она была запущена, и сообщить о невозможности выполнения этой функции.
     
    Рихард нравится это.
  5. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.553
    Симпатии:
    1.754
    Исключения выбрасываются там, где произошла исключительная (ненормальная) ситуация. Ваш КО. Может быть и в модели, и в контроллере, и в промежуточных слоях. Разве что в View не стоит этого делать :) К моменту, когда формируется вывод, уже не должно быть исключительных ситуаций
     
  6. machetero

    machetero Активный пользователь

    С нами с:
    25 окт 2014
    Сообщения:
    499
    Симпатии:
    21
    Или в том, что можно повесить обработчик исключений(set_exception_handler()) и в случае, если у тебя, например, маршрут не найден(404NotFoundHttpException), или к базе не получается подключиться (т.к. в конфиге неправильный логин/пароль), то можешь показывать пользователю красивую страничку, что программа не может корректно отработать.
     
  7. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.745
    Симпатии:
    1.319
    Адрес:
    Лень
    @igordata не только сообщить, но и попытаться устранить проблему если такого возможно. Допустим:
    Произвести множественную запись в бд включив транзакцию. Если вдруг создается ошибка, ловим исключением и откатываем все что добавляли ( rollback )

    например :)
     
  8. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    нууууу
    исключение само по себе ничего не пытается и не устраняет
    задача устранения проблемы может и не стоять
    ташто, я предпочитаю считать, что исключения - они только для перехода в место принятия решения и возможности передачи некой информации принимающему решение коду. А устранять или нет, как устранять - это уже дальше происходит.
     
    MouseZver нравится это.
  9. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.745
    Симпатии:
    1.319
    Адрес:
    Лень
    вот, в точку ++ ;)