За последние 24 часа нас посетил 36671 программист и 1706 роботов. Сейчас ищут 1119 программистов ...

Часто ли вы используете обработку ошибок (try, throw,catch)?

Тема в разделе "Прочее", создана пользователем alex455, 27 июл 2011.

  1. MiksIr

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

    С нами с:
    29 ноя 2006
    Сообщения:
    2.339
    Симпатии:
    44
    Так, я видимо не правильно понял суть проблемы. Вообще там сложно понять... какие-то автолоадеры и т.д. Давайте по порядку.
    Если у вас используется set_error_handler - то он ловит варнинги/нотисы, что-то с ними делает и.. что? Если вы не натыкали там die - то скрипт будет продолжать работать дальше. Соответственно, connect вернет false и сработает вызов исключения.
    Где из этой цепочки у вас проблема?
     
  2. KMB

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

    С нами с:
    9 сен 2011
    Сообщения:
    63
    Симпатии:
    0
    Да ну вас знаете куда! Если вам мучительно сложно поставить в нужное место вардамп, а потом убрать, делайте там что хотите со своми исключениями.
     
  3. lexa

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

    С нами с:
    22 июл 2007
    Сообщения:
    1.746
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    С какого перепоя варнинги не ошибки? Например, варнинги лезут, если в параметры заданы неверные типы, которые PHP не может нормально трансформировать в нужный: array -> string.

    Это значит, что в функции заведомо есть ошибка и она не вернёт адекватный - ожидаемый - результат.
     
  4. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    PHP:
    1. <?php
    2. try {
    3.  
    4. } catch(Exception $e) {
    5.      echo '<pre>';
    6.      var_dump($e);
    7.      echo '</pre>';
    8. }
    [​IMG]
     
  5. MiksIr

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

    С нами с:
    29 ноя 2006
    Сообщения:
    2.339
    Симпатии:
    44
    С того, что тут общаются программисты, а не филологи. Ошибка - это уровень ERROR.
     
  6. lexa

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

    С нами с:
    22 июл 2007
    Сообщения:
    1.746
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Если warning не error значит это не error. Конечно же. А я-то дурак.

    И ещё раз, для не филологов, мой предыдущий комментарий:
     
  7. MiksIr

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

    С нами с:
    29 ноя 2006
    Сообщения:
    2.339
    Симпатии:
    44
    Ох, понабегут тут... неместные. Вы хоть тему всю читали? О чем речь - видели? Или как обычно на этом форуме - только на одно сообщение хватило, и тут "прихватило"? Сформулируйте основное отличие ERROR от WARNING в PHP - и все поймете. И впредь на занимайтесь выдергиванием чего-то из контекста общения и переворачивания с ног на голову.
     
  8. lexa

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

    С нами с:
    22 июл 2007
    Сообщения:
    1.746
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Аргументеще. Вообще, ты жутко невнимателен. Если бы прочитал мой комментарий, то видел бы профиль.
     
  9. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    WARNING в PHP - это ошибка уровня предупреждения, в конфиге отчет о уорнингах так же задается параметром error_reporting со значение E_WARNING, а ERROR - это ошибка уровня ошибки и это минус языку!
     
  10. MiksIr

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

    С нами с:
    29 ноя 2006
    Сообщения:
    2.339
    Симпатии:
    44
    Еще раз. Для внимательных. ERROR - ошибка исполнения, фатальная ошибка, скрипт должен быть остановлен. WARNING - предупреждение, скрипт может продолжать работать. Это принципиальное отличие для программиста. Говорить, что функция генерирует ошибку тогда как она генерирует предупреждение можно друзьям на лавочке. А при обсуждении поведения программы с другим программистом следует использовать формализованный язык. Если уж очень хочется использовать богатый русский язык - говорите "не фатальная ошибка".

    А если вообще говорить в контексте обсуждения, который вы не удосужились почитать - то там речь как раз и шла о том, что "почему проблемы с коннектом в мемкеше вызывают ошибку, которая останавливает скрипт". И ответ был про то, что эта проблема генерирует не ошибку, а предупреждение - и скрипт должен продолжать свою работу, а то, что он не продолжает - проблема рук в другом месте. Принципиальная разница.
     
  11. lexa

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

    С нами с:
    22 июл 2007
    Сообщения:
    1.746
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Я. Об. Этом. И. Говорю.

    Это и есть ошибка. Как PHP выкинет (Ъ-ошибку в твоём понимании) fatal error с unexpected, так и варинг это unexpected, но для программиста.

    Если файл не найден, если входящие параметры неверного типа, если мемкэш или БД не смогли подсоединиться это всё unexpected, которые должны быть отловлены, а скрипт остановлен (программистом).
     
  12. tommyangelo

    tommyangelo Старожил

    С нами с:
    6 дек 2009
    Сообщения:
    2.549
    Симпатии:
    0
    Адрес:
    Мариуполь
    А почему он должен быть остановлен? Можно ведь попробовать (в случае с мемкешем) обратиться к альтернативному источнику данных, либо дать пользователю возможность сделать какие-то действия. Зачем останавливать?
     
  13. MiksIr

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

    С нами с:
    29 ноя 2006
    Сообщения:
    2.339
    Симпатии:
    44
    О том expected или unexpected проблема подсоединения к мемкешу - решать уже программисту. Если уж совсем погружаться - то линейкой по пальцам таким проектировщикам, которые невозможность подсоединения к мемкешу делают фатальным - этого быть не должно.