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

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  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 glprizes, (Updated )

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

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

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

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

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

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

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

Из-за тебя ушел bormand, guest!

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


    8