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

    +69

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    String sXLTName = template;
            String[] fileNames = new File(templatePath).list();
            try {
              if (fileNames != null) {
                for (String fileName : fileNames) {
                  if (fileName.equalsIgnoreCase(template)) {
                    sXLTName = fileName;
                    break;
                  }
                }
              }
            } finally {
              tmpBook = POIHelper.openRepBook(templatePath + sXLTName);
            }

    Вместо tmpBook = POIHelper.openRepBook(templatePath + template);

    Запостил: glprizes, 15 Июня 2012

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

    • показать все, что скрытоХочешь, чтобы изящная, хрупкая девушка раздавила твои нежные яички своим остреньким каблучком?
      Ответить
    • Пойми, тут дело вот в чём:
      fileName.equalsIgnoreCase(template)
      Ибо у многих людей стоит не видна, а регистрозависимые луникса.

      Впрочем не минусовал, потому что меня что-то в коде-таки смущает.
      Ответить
    • показать все, что скрытоЖелаю смерти, гандоноид мудлоёбищный.
      Ответить
    • а на кой тут try/finally?
      Ответить
      • Типа если будет эксепшон, то откроет с sXLTName = template.
        Вот кстати это меня и смущает.
        Ответить
        • а какой там может быть exception?
          Ответить
          • да уж, врядли list() вернёт null в массиве...
            Ответить
          • NullPointer! Когда fileName==null
            А серъезно, чето меня переклинило на исключения, как увидел работу с файлами.
            Всё смотрел на try~finally и не мог понять чем оно мне глаз режет.
            Ответить
          • Ну разве что fileName == null.
            Ответить
          • http://tinyurl.com/8759ll7
            list() может вернуть null, если файл не является каталогом. Если каталог, то всё-же массив строк. Видимо, автор решил написать лишний try/finally вместо того, чтобы читать скучную документацию.
            Ответить
            • От того он предохранился
              >if (fileNames != null) {
              А вот ненужный try - говно.
              Ответить
        • > Типа если будет эксепшон, то откроет с
          sXLTName = template.
          > Вот кстати это меня и смущает.

          а я знаю почему: код в finally выполнится в любом случае. если будет исключение, то часть блока try не проработает, и улетит хз куда наверх
          Ответить
    • вообще установка переменной в finally по мне - хреновая идея в принципе.
      Ответить
      • Ага. Непонятно для кого ее устанавливают, если идущий далее код все равно не выполнится.

        Хотя если это член - то имеет какой-то смысл.

        Но вот вызывать из finally ОТКРЫТИЕ книги, это, имхо, ни в какие ворота не лезет...
        Ответить
        • > Хотя если это член - то имеет какой-то смысл.
          есть пример? я пока придумать не могу.
          Ответить
          • ну, кроме как, какой-нить this.connection = null
            Ответить
            • Ну тут лучше положить его туда заранее, и ложить туда не null только под конец трая :)
              P.S. Тоже не могу придумать вменяемый пример.
              Ответить
    • показать все, что скрытоКакой багор )))
      Ответить
    • Ну не смог, гад, просто комплимент сделать, надо обязательно напакостить!
      Ответить

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