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

    −1

    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
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    public Pattern waitNotEmptyRegex(){
            String read;
            Pattern pattern;
    
            while (true) {
                try {
                    try {
                        read = in.readLine();
                        if (!read.trim().isEmpty()) {
                            pattern = Pattern.compile(read);
                        } else {
                            context.getOut().write(context.localizKey("console.messages.emptyString") + "\n");
                        }
                    } catch (PatternSyntaxException e) {
                        context.getOut().write(context.localizKey("console.messages.invalidPattern") + "\n");
                    }
                }catch (IOException e){
                    throw new IllegalStateException(e);
                }
            }
        }

    Боооольше вложенных блоков

    Запостил: the-alator, 20 Августа 2018

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

    • Переведи на "PHP".
      Ответить
    • >>localizKey
      серьезно?
      Ответить
    • А ещё pattern нигде не используется, в catch бросается эксепшн, да и while(true) в продакшине это не очень так.
      Ответить
    • > }catch (IOException e){
      > throw new IllegalStateException(e);
      > }

      Серьёзно, прям illegal state?

      > the Java environment or Java application is not in an appropriate state for the requested operation.

      the Java application developer was not in an appropriate state to handle this error properly.
      Ответить
      • тут соглашусь)
        Ответить
      • Переведи на "PHP".
        Ответить
      • Это пишутня конечно.

        Семантика IllegalStateException примерно такова: в джава доке написано "не вызывайте метод foo(), не вызвав предварительно bar()" а ты взял и вызвал

        И вот тогда ты нарушил контракт и получил рантайм exception illegal state.

        IOException же означает что ты ничего не нарушал, просто по каким-то независящим от тебя причинам I/O обосрался. Такой exception надо поймать и обработать со смыслом, по сути это возвращение ошибки

        И да: я знаю что checked exceptions это говно
        Ответить

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