1. VisualBasic / Говнокод #2173

    −366.8

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    Public Overrides Function DataChanged() As Boolean
            Const CONST_PROC_NAME = "DataChanged"
            Try
                Return False
            Catch objExcp As Exception
                Me.DisplayMessageBox("Unexpected Exception in " & CONST_CLASS_NAME & "." & CONST_PROC_NAME & " : " & objExcp.Message.ToString, MessageBoxIcon.Error)
            End Try
        End Function

    По суровому закону нашего проекта каждая функция должна быть обернута ловлей эксепшиона. Каждая. Всегда.

    Запостил: 6istik, 24 Ноября 2009

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

    • Должна быть обёрнута снаружи или внутри?
      Ответить
    • Это мощно!
      Это не говнокод, а говноархитектура!
      Сначала в недоумении пялился на безумный код перехвата ошибки... (бррр... не хотел бы у таких работать!)

      А потом увидел это чудо:

      Try
      Return False

      Эйнштейн отдыхает...
      Ответить
      • жестоко...
        А откуда тут может взяться exception? Или это задел под переписывание функции, которая пока реализована в качестве заглушки?
        Ответить
        • если его не обернуть то может случиться непредвиденное. вот еще примерчик опасного участка кода:
          btnOK.Visible= true
          а если кто забудет это сделать то тут же получает письмо от начальство полное гнева и возмущения.
          Ответить
          • а что такое страшное может быть с return false?

            ну c btnOK, там, понятно, кнопка может куда-то затеряться, но return false - он и в Африке return false...
            Ответить
            • просто шедеврально
              но возникает вопрос, а почему не обернута Me.DisplayMessageBox(...)
              она-то посложнее ретурна будет
              Ответить
        • показать все, что скрытоvanished
          Ответить
    • Видимо руководители проекта не знают что такое StackTrace
      Ответить
    • ява-кодеры с явным указанием эксепшнов всегда и везде смеются.
      Ответить
    • Офигеть. И видимо По суровому закону вашего проекта каждая функция тормозит.
      Ответить
    • А зачем функция, которая всё время возвращает false? Задел?
      Ответить
    • Хм, дотнет вроде бы не делит функции на потенциально-обязательно-ловимые и "прощаемые", как в яве (забыл термины). Я имкю в виду, по сути может выскочить абсолютно любое исключение, вплоть до OutOfMemoryException или какого-нибудь "ExecutionException" (опять, забыл точные названия, нувыпоняли). Их наверное и ловят :)
      Ответить
      • > вроде бы не делит функции

        "вроде бы не делит исключения"

        fxd
        Ответить
    • Это называется паранойя, в нормальных странах за такое в психиатрическую больницу кладут
      Ответить
    • Да, и ещё умиляет константа CONST_PROC_NAME. Ладно б там люди о принтСтэкТрэйсах не ведают, но делать локальную константу, чтобы использовать один раз через две строки -- это точно диагноз
      Ответить
      • Так гораздо легче не забыть исправить эту константу, когда название функции меняется.
        Ответить
    • Это придумал совсем безнадёжный дебил.

      В Application Events есть во чиво:
      Private Sub MyApplication_UnhandledException...
      Ответить
    • Это звезда!
      Ответить
    • Все бы хорошо, но зачем objExcp.Message.ToString, если оно и так String по определению, и почему не обычный сниппет?
      Ответить
    • Может ты не так понял, и это только про верхнеуровневые гуишные функции?
      Ответить

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