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

    +76.3

    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
    Long orgId = 0L;
    try {
        orgId = Long.valueOf(textOrgId);
    } catch (Exception e) {
        orgId = 0L;
    }
    // ...
    Organization org = orgDAO.findById(orgId);
    if (org == null) {
        // не найдено? создать новую
        org = new Organization();
        // ...
    }

    Если с веба в поле textOrgId пришёл мусор, то создать новую организацию. Но перед этим всё равно поискать в базе несуществующий orgId=0.

    Запостил: yvu, 28 Сентября 2009

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

    • Насколько я понял, этот код взят из разных классов, иначе это говнокод даже без учета поиска по несуществующему ID. А так, вполне даже, ведь метод поиска где-то там может и не вызваться, если будет сделана соответствующая проверка на ноль в нужном месте.
      Ответить
    • Ну в общем то обработка orgId c помощью эксепшена - не особо красиво. Bloch советует заранее проверять. Может в этом говнокод?
      Ответить
    • Говнокод в: "Но перед этим всё равно поискать в базе несуществующий orgId=0."

      То, что там ловится не NumberFormatException, а Exception это тоже говнокод. Раньше там вообще внури try/catch ловящего java.lang.Exception был вызов не только Long.valueOf(), а ещё и вызов некого сервиса. Если бы в сервисе был какой-то exception, никто бы об этом никогда не узнал.
      Ответить
      • Даже если бы там ловилось NumberFormatException это был бы говнокод. Специально для этого matches сделали.
        Ответить

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