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

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
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
protected IOException copyRange(InputStream istream, ServletOutputStream ostream) {

        // Copy the input stream to the output stream
        IOException exception = null;
        byte buffer[] = new byte[input];
        int len = buffer.length;
        while (true) {
            try {
                len = istream.read(buffer);
                if (len == -1) {
                    break;
                }
                ostream.write(buffer, 0, len);
            } catch (IOException e) {
                exception = e;
                len = -1;
                break;
            }
        }
        return exception;

    }

Си-стайл в исходниках Tomcat. Зачем кидать исключения, если их можно возвращать вместо кода ошибки?

Запостил: Eyeless Eyeless, (Updated )

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

  • А если в коде произойдет исключение не наследованное от IOException, то случится отсос.
    Ответить
    • все исключения, которые могут возбудиться внутри try/catch либо из иерархии IOException, либо из RuntimeException т.е. идеологически все более чем правильно 🙂
      Ответить
      • >более чем правильно
        Это как?
        Сегодня покрывается IOException, а завтра - может быть уже и нет. С точки зрения развития кода подход, который заключается в возврате исключения через return, трудно поддерживать.
        Ответить
        • да, мы таких ребят, кто так пишет - не поддерживаем
          Ответить
  • Вот и в итоге из-за таких программеров и складывается мнение о языке в целом.
    Ответить
  • А немного подумать, не?
    Это все таки не хеловолд и производительность имеет значение.
    Ответить
    • И каким же образом ловля и возвращение исключения повышает производительность?
      Ответить
      • Не тратятся ресурсы на новый выброс эксепшена.
        К.О.
        Ответить
        • lolwut? Вы исключение как что-то с трудом поддающееся броску себе представляете? Какие на это тратятся ресурсы?
          В этом случае его вообще ловить на этом уровне не надо было, все равно сразу break и return происходит.
          Ответить
          • Выброс эксцепшена - довольно затратная операция. Только именно в этом коде выигрыш в производительности не найдёшь. Тут просто говно вкралось. Может, жертва рефакторинга.
            Ответить
  • Посмотрел внутрь кода. Это они так finally блок делали
    Ответить
  • ц$A!N!K"W(H:K.N!J!P(G!T"M)A)P.A)HK:P E J,Q(QЬQTEJIJCLOEW
    Ответить

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

Помни, guest, за тобой могут следить!

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


    8