За последние 24 часа нас посетили 16450 программистов и 1676 роботов. Сейчас ищут 863 программиста ...

exception & try catch

Тема в разделе "Прочие вопросы по PHP", создана пользователем kostyl, 18 янв 2009.

  1. kostyl

    kostyl Guest

    Добрый день. Такой имею запутанный в моей голове вопрос. Кто как применяет исключительные ситуации? Например, я практически не пишу блоков try catch потому что они меня бесят в коде :) в основном я стараюсь наследовать определенный тип exception-а и там выполнять соответствующие действия, тоесть передаю исключительную ситуацию вверх, при этом стараясь ситуации похожие на исключительные "сглаживать" кодом, чтобы не сильно много генерировать исключений, ну например возвращать 0 или еще как нибудь. Не знаю что быстрее try catch или более глобальная обработка исключения, но так мне больше нравиться. А как делаете Вы?
     
  2. Sergey89

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

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    Как таковой, try catch у меня один.

    PHP:
    1.  
    2. <?php
    3. try {
    4.     $app = new Application();
    5.     $app->run();
    6. } catch (DbConnectionException $exception) {
    7.     print 'Нет коннекта с базой';
    8. } catch (Exception $exception) {
    9.     print 'Internal application error';
    10. }
    В других местах данная конструкция появляется только если надо как-то по другому отреагировать на ошибочную ситуацию.
     
  3. kostyl

    kostyl Guest

    Например, она может появится в глобальном обработчике, верно? :wink:
     
  4. Sergey89

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

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    Что такое глобальный обработчик?
     
  5. kostyl

    kostyl Guest

    ну может не так навзал: set_exception_handler
     
  6. Sergey89

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

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    В моём подходе set_exception_handler, впринципе, не нужен. Всё приложение я помещаю в try catch, как я показал выше.