Объединение предложений try / catch в супер лямбда-функции - PullRequest
0 голосов
/ 31 марта 2020

На самом деле не знаю, подходит ли заголовок к проблеме, которую я пытаюсь решить, но здесь она идет (не стесняйтесь изменять ее для чего-то, что имеет больше смысла).

На самом деле я добавляю Строковые операции внутри Consumer, поэтому при запросе значение преобразуется в цепочке. Однако я вижу, что одно и то же исключение выдается во многих методах, и я хотел бы сжать точно такое же предложение try / catch на верхнем уровне, чтобы методы содержали только новое определение Consumer для добавления.

    public static class Clazz {

        private Consumer<String> modifications;

        public Clazz() {
            // ...
        }

        public void addOp() {
            this.modifications = modifications.andThen(item -> {
              try {
                  item.toUpperCase();
              } catch (Exception e) {
                  // logging and exception handling - Merge in common lambda?
              }
            });
        }

        public void anotherOp() {
            this.modifications = modifications.andThen(item -> {
                try {
                    item.toLowerCase();
                } catch (Exception e) {
                    // logging and exception handling -- Merge in common lambda?
                }
            });
        }

    }

Будет ли возможность сжать все эти исключения в верхнем классе? Какой подход используется при упрощении лямбда-выражения try / catch?

...