1. Java / Говнокод #7523

    +80

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    try {
    ...
    } catch (Exception ex) {
    	wdComponentAPI.getMessageManager().reportException("ERROR", true);
    }

    Информативно так

    Запостил: foGa, 12 Августа 2011

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

    • Да, exception handling - одна из самых богатых источников говнокода. Почти как даты в PHP.
      Ответить
      • народ быстро забывает почему исключения называются исключениями.
        Ответить
      • и что здесь такого?
        Ответить
        • Скорее всего всё, что будет доступно программисту для анализа исключения - это "информативная" строка "ERROR".
          Ответить
          • ну только если. может ему вообще эта ошибка с сообщением нафиг не нужна.
            Ответить
            • Какой вы всё-таки эгоист =) Очевидно, в проекте есть и другие люди, которые считаю такую обработку ошибок неприемлемой.
              Ответить
              • > Очевидно, в проекте есть и другие люди
                В проекте бывает более одного человека???? =)

                >которые считаю такую обработку ошибок неприемлемой.
                А может это они ошибаются? Ведь может так случится, что эта ошибка показывается конечному пользователю. А конечному пользователю, что "ERROR", "NullPointerException", что стектрейс равнозначны.
                Ответить
                • >В проекте бывает более одного человека???? =)
                  Ты не поверишь...

                  >А конечному пользователю, что "ERROR", "NullPointerException", что стектрейс равнозначны.
                  Вот тут не согласен. Если обработка ошибки достаточна информативна, то и её проблему намного проще и быстрее вычислить.
                  Ответить
                  • Вычислить программисту. А если мне к примеру Photoshop выдаст стектрейс, я подумаю "Боже, что за кретины там работают."
                    Ответить
                    • Проект не только пишется, но и сопровождается. А чтобы было легче сопровождать, надо и на такие мелочи тоже обращать внимание.
                      Ответить
                      • Поэтому в серьезных проектах есть функция "Отправить отчет разработчику".
                        Ответить
                        • Смотря что за проект. Если у приложения одна точка входа, то это особо и не надо. Для этого есть логи при надобности. Но иногда можно и только сообщением об ошибке обойтись.
                          Ответить
                          • > одна точка входа
                            это как?
                            Ответить
                            • два слова описания ошибки иногда ценнее длииинного стектрейса. Да и юзверю иногда полезно показать, в чем именно он неправ
                              Ответить
                              • Я же с этим не спорю.

                                Краткий конспект сказанного выше.
                                1. Если обработка ошибки достаточна информативна, то и её проблему намного проще и быстрее вычислить. Проект не только пишется, но и сопровождается. А чтобы было легче сопровождать, надо и на такие мелочи тоже обращать внимание.

                                2. Смотря что за проект. Если у приложения одна точка входа, то это особо и не надо. Для этого есть логи при надобности. Но иногда можно и только сообщением об ошибке обойтись.

                                Можете прокомментировать эти 2 пункта? Мне кажется, что мы опять как глухой со слепым разговариваем, т. е. говорим о разных вещах. Что-то мне еще 234 коммента фигачить не хочеццо =)
                                Ответить
                • Моделируем ситуацию. Ты работаешь с приложением, написанным не тобой. И вдруг оно падает. Какое сообщение тебе больше понравится как пользователю, "ERROR" или "Указанный файл занят другим приложением. Попробуйте закрыть это приложение и повторить операцию."?
                  Ответить
                  • Согласен, что второе.

                    А может этот try/catch из той серии, когда что-то падает и сообщение для пользователя не имеет никакого значения, кроме того, что что-то упало.

                    Вдруг "ERROR" это лишь код ошибки, а по нему уже формируется полноценное сообщение. Или эта строка показывает, что в UI надо показать диалог с ошибкой (т. е. что надо рисовать картинку ошибки, а не информации)?

                    Я все это к тому, что здесь тоже отсутствует контекст. И тяжело что-то однозначно сказать.

                    Вот было бы в комменте написано: "в этой try/catch секции производится анализ ввода пользователя. В reportException первый параметр текст, который будет отображаться, а второй флаг, отвечающий за показ этого сообщения пользователю". Вот тут уже можно говорить, что это говно. А так...
                    Ответить
                    • > А может этот try/catch из той серии...
                      Батенька, когда же вы перестанете делать предположения?
                      В разработке приложений должна быть дисциплина, почти армейская, и порядок, как в аптеке... Машина очень щепетильна в таких делах. А все баги - как раз недочеты людей, от невнимательности и безответственности.

                      Если исключению можно задать информативное описание, то оно должно быть, и быть именно информативным!
                      А еще (вам на будущее) то же касается всяческих проверок, как внешних данных, так и данных между более-менее независимыми частями; так же касается и контроля прав доступа - как людей, так и программ\процессов\объектов
                      Ответить
                      • >Вдруг "ERROR" это лишь код ошибки, а по нему ...
                        А почему вы проигнорировали вариант?

                        Предположения не закончу делать. Нельзя смотреть на код однобоко. В #7549 вы видели одну сторону, а я (и не только я) показали вам другую. Надо стараться увидеть как можно больше сторон.

                        П. С. Мне так нравится, что меня тут все учат. Как с детем неразумным возятся. Мило =)
                        Ответить
                        • Допиздишься введут плату за обучение по школьным тарифам
                          Ответить
                          • Розги?
                            Ответить
                          • Местное обучение сводится к анекдоту:

                            Урок геометрии в школе.
                            - Докажите, что это равнобедренный треугольник.
                            - Мамой клянусь!
                            Ответить
    • показать все, что скрытоvanished
      Ответить

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