1. JavaScript / Говнокод #11341

    +159

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    try {
      //
     if(error)1/0;
    } catch (e) {
     //
    }

    Запостил: Lure Of Chaos, 02 Июля 2012

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

    • Интересно вот, как можно научиться ловить исключения, но при этом не уметь их вбрасывать? ;)
      Ответить
      • а так же короче ;)
        Ответить
        • Но самое печальное, что, оказывается, 1/0 это inf даже в JavaScript...
          Ответить
          • А чего ты ждал, NaNa?
            Ответить
            • Думал, что будет FPE...
              Ответить
              • Ну то я сказал с небольшой едкостью
                >FPE
                В смысле Division by zero?
                Ответить
                • Ага, оно самое. Просто в линухе сишным прогам прилетает SIGFPE при целочисленном делении на 0...
                  Ответить
                  • Только в этом ихнем яваскрипте нету целых чисел
                    Ответить
                  • При целочисленном делении - прилетает любым прогам на любом железе. Кто знает экзотику, где не так - отпишитесь.
                    А что будет при вещественном делении - зависит от настроек сопроцессора. Я предочитаю режим, при котором записывается inf, а не выкидывается исключение.
                    Ответить
            • синий экран смерти!
              Ответить
              • Да что уж мелочиться, коллапс вселенной...
                Ответить
                • Эх-х. Зря ты сразу так.
                  Тут можно было целый подтред типа
                  - падение браузера
                  - bsod
                  - вишня жесткого диска
                  - самовозгорание компа
                  - падение пользователя из окна
                  - землетрясение
                  - авария на адронном колайдер
                  - конец света
                  и только потом:
                  коллапс вселенной
                  Ответить
                  • Но круче этого все-равно не получится:
                    http://www.youtube.com/watch?v=GJMjpc-OhzU
                    Вот поэтому я его и убил - он поделил на ноль.
                    Ответить
      • > не уметь их вбрасывать
        Плохой, негодный тролль.
        Ответить
        • Ась?
          Ответить
          • Ну так кто занимается набросами исключений? Только тролль.
            Ответить
        • предлагаешь вброс исключений проводить в специальный классах?
          [mode=java]
          А если еще сделать фабрику, то можно легко менять толщину вброса
          [/mode]
          Ответить
          • Troll troll = TrollFactory.CreateTroll(Troll.Fat);
            troll.throwPost(govnokodRu);
            Ответить
    • Это гениально!!!
      Какая мысль, какая экспрессия!
      Буду теперь только так писать)
      Ответить
    • По теме - если мне надо проверить, дошла ли программа до некоторого момента и влом врубать отладчик, то я что-то такое делаю, только не перехватываю
      Ответить
      • console.log, не.
        В общем случае assert(notError), не.
        Ответить
      • *(int*)0=*(int*)1;
        DebugBreak();
        _CrtDbgBreak();
        Ответить
      • В Яваскрипте есть нестандартное ключевое слово debugger, большинство отладчиков его понимают. И писать меньше чем throw something, и не убивает программу совсем.

        Том же Firebug / Chrome JS Consloe, MSVS, (про Dragonfly не знаю, но думаю, что тоже как-нибудь отреагирует).
        Ответить
    • Дело в том, что 1/0 не бросит исключение, если кто не понял прекола.
      Ответить

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