1. C++ / Говнокод #5581

    +163

    1. 1
    throw new TSilentException("");

    Запостил: Говногость, 08 Февраля 2011

    Комментарии (36) RSS

    • SilentHill
      Ответить
    • дельфинарий йопта
      Ответить
    • Не выбрасывайте указатели на объекты исключений (throw new myexception...). new может выбросить исключение сам. Пойманое исключение придётся удалять через delete вручную.
      Ответить
      • Кстати, в 6м быдлере отловленное исключение надо удалять руками, иначе оно утечёт.
        Ответить
      • > new может выбросить исключение сам
        это как, new myexception эквивалентно throw new myexception, чтоле?
        Ответить
        • Да, крайне редко, но может (из-за ошибки в new).
          Ответить
          • вот это называется неочевидная логика
            Ответить
            • это с++ :)
              Ответить
              • throw значит хочу выбросить.
                а так может мне просто пофапать охота
                Ответить
                • не очевидный камент :)
                  переведи
                  Ответить
                  • ну хочу стектрейс получить или еще что-нибудь. А он возьмет и выбросит - какого, спрашивается?
                    Ответить
                    • Чего это он выбросит? Отдаст наверх же)
                      Ответить
                    • Ну только если он его сразу же не отловит
                      try{
                      throw new TSilentException("");
                      }catch(TSilentException e){
                      sout("гыгы я дибил");
                      }
                      Ответить
            • >вот это называется неочевидная логика
              Джава прога упадёт, если у неё память закончится, а С++ будет продолжать стоять. Просто бросит исключение из new. Весьма важно для сверх надёжных систем.
              Ответить
    • http://caricatura.ru/ukol/maslov/pic/861.jpg
      Ответить
    • - Я понял! - заявил парень. - Это из-за истерики, которую я вчера закатил Вам?
      Ответить

    Добавить комментарий