Школоло / Говнокод #2173 Ссылка на оригинал

0

  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 6istik, (Updated )

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

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

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

    Try
    Return False

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

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

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

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

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

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

Я, guest, находясь в здравом уме и твердой памяти, торжественно заявляю:

    А не использовать ли нам bbcode?


    8