На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
Дорогие друзья! Поздравляем вас с днём Победы!
msm.ru
! Правила раздела:
1. Название темы - краткое описание кто/что против кого/чего
2. В первом сообщении - список параметров, по которым идет сравнение.
3. Старайтесь аргументировать свои высказывания. Фразы типа "Венда/Слюникс - ацтой" считаются флудом.
4. Давайте жить дружно и не доводить обсуждение до маразма и личных оскорблений.
Модераторы: Модераторы, Комодераторы
Страницы: (37) « Первая ... 31 32 [33] 34 35 ... Последняя »  ( Перейти к последнему сообщению )  
> C vs C++ , Не опять а снова
    Цитата Wound @
    Ты на них не ответил, твой ответ был "Какие надо такие и перехватывай". Вот весь твой ответ. Никакой конкретики.

    Опять враньё. Вообще-то конкретика была. Я даже примеры приводил, когда один и тот же bad_alloc в разных контекстах может быть как ожидаемым (и значит его вполне можно поймать и обработать), так и неожиданным (и тогда на него просто в данный момент забиваем).
      Цитата applegame @
      Обсуждали два способа: возврат ошибки через return (ну или через out параметр) и через исключения.

      Так через Out параметр это уже не возврат ошибки. А если возврат ошибки, тогда точно такой же возврат ошибки, можно назвать и через какой нибудь левый метод/функцию. Какая разница где тебе пишется состояние ошибки?
        Цитата Wound @
        Имелось ввиду ошибка открытия файла. А не ошибка которую сама функция возвращает. Т.е. другими словами ошибка не в контексте функции, а в контексте класса.

        Тогда не понятно для чего ты привел этот пример. Вроде речь шла о сравнении с исключениями, а исключения - это ошибка в контексте функции, а не класса.
        Сообщение отредактировано: applegame -
          Цитата OpenGL @
          Опять враньё. Вообще-то конкретика была.

          Вранье пока что с твоей стороны. Какую ты конкретику приводил? Покажи где? Я тебе привел функцию, попросил тебя, чтоб ты рассказал как мне запомнить и понять какие исключения она генерит, если у меня нет ее реализации. Ты отмазался общими словами, потом съехал на RAII, На который я просил тебя не съезжать, и начал объяснять мне зачем то, как ты круто юзаешь RAII.

          Цитата OpenGL @
          Я даже примеры приводил, когда один и тот же bad_alloc в разных контекстах может быть как ожидаемым (и значит его вполне можно поймать и обработать), так и неожиданным (и тогда на него просто в данный момент забиваем).

          Ну вот я тебе привел выше пример, когда забивание на bad_alloc, приведет к по сути багу. Или ты мне хотел открыть америку, что исключения можно наверх прокидывать? Вопрос был про другое. Но теперь уже ты на столько извратил контекст спора, что сейчас по сути идет спор ни о чем.
            Цитата OpenGL @
            Лично я под "код возврата" всегда понимал сигнализирование об ошибке путём возвращаемого значения.
            Ну лично я, тоже так понял. Но как видим, Киля типа подразумевал под этим что-то другое.
              Цитата applegame @
              Тогда не понятно для чего ты привел этот пример. Вроде речь шла о сравнении с исключениями, а исключения - это ошибка в контексте функции, а не класса.

              Это было к тому, что понять какую ошибку/неошибку/код возврата может генерировать функция/класс, проще визуально наблюдать глазами, чем какие исключения функция может генерить. Потому что те же коды возврата можно структурировать. Под исключения же придется все оборачивать в RAII, в том же С++, чтоб избежать утечку ресурса.
              Вот Qraizer там про SEH писал и что исключения очень хорошо ложатся в модель Си. Но лично я не понимаю как они туда ложаться. Ведь в том же Си нет ни конструкторов, ни деструкторов. При генерировании исключения, которое проглядели - утечка гарантирована ИМХО.
                В любом случае сигнатура никак не поможет запомнить код ошибки. Например. мы знаем (из доков), что функция int doSomething() возвращает код ошибки. Как нам по сигнатура понять какие именно ошибки может вернуть функция?
                  Цитата Wound @
                  Под исключения же придется все оборачивать в RAII, в том же С++, чтоб избежать утечку ресурса.

                  Это стоит делать и без исключений.
                    Цитата applegame @
                    В любом случае сигнатура никак не поможет запомнить код ошибки. Например. мы знаем (из доков), что функция int doSomething() возвращает код ошибки. Как нам по сигнатура понять какие именно ошибки может вернуть функция?

                    Ну это из той же серии, что и про исключения, но без RAII. Что тебе например мешает завести enum ?
                    Тогда твоя функция будет выглядеть как:
                    SomeStatus doSomething()
                    И уже будет проще понять какие ошибки функция может возвратить.
                      Цитата Wound @
                      Это было к тому, что понять какую ошибку/неошибку/код возврата может генерировать функция/класс, проще визуально наблюдать глазами, чем какие исключения функция может генерить.
                      Приведи вариант функции is_open() только с исключениями вместо возврата. Дабы можно было прямо вот на конкретном примере сравнить два варианта.
                        Цитата D_KEY @
                        Это стоит делать и без исключений.

                        Можешь показать как в Си это сделать? Там как раз нет исключений, мне бы пригодилось.
                          Цитата Wound @
                          Тогда твоя функция будет выглядеть как:
                          SomeStatus doSomething()
                          И уже будет проще понять какие ошибки функция может возвратить.
                          Чем проще, ведь хз что там в этом SomeStatus, все равно придется лезть в доку.
                            Цитата applegame @
                            Приведи вариант функции is_open() только с исключениями вместо возврата. Дабы можно было прямо вот на конкретном примере сравнить два варианта.

                            Я не понял вопроса, он какой то глупый. :-? Приведи вариант функции GetLastError Только с исключениями, вместо возврата? Я не понимаю зачем это вообще нужно, и как это будет выглядеть? Ты сравнивать колбасу и палец ИМХО.
                              Цитата Wound @
                              Под исключения же придется все оборачивать в RAII, в том же С++, чтоб избежать утечку ресурса.
                              При возврате ошибок придется городить точно такое же RAII, ранний return по сути ничем не отличается от throw.
                                Цитата applegame @
                                Чем проще, ведь хз что там в этом SomeStatus, все равно придется лезть в доку.

                                Ну если ты в блокноте код набираешь, то да, придется. А если в более менее какой то IDE, хотя бы 2000 года выпуска, то они как правило сами подсвечивают такие вещи. В самом худшем случае можно сочетание клавишь нажать "Go to declaration" и посмотреть. :-?
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0646 ]   [ 15 queries used ]   [ Generated: 9.05.24, 13:56 GMT ]