Я пытаюсь перехватить конкретное исключение времени выполнения (поэтому его нельзя выбросить) и просто зарегистрировать его (log.error имеет тип возврата void). Как проще всего это сделать в вавре?
try {
sayHello();
} catch (MyAppRuntimeException ex) {
log.error("Error occured") // log.error returns void not Void so I couldn't find a suitable method in Vavr library
}
я пытался
Try.run(() -> sayHello())
.recover(MyAppRuntimeException.class, ex->log.error("Error occured: {}", ex.getMessage()))
Я получил:
Неверный тип возвращаемого значения void не может быть преобразован в Void
Если .recover - неправильный метод, предложите альтернативы, в которых я могу поймать одно конкретное исключение, но не Throwable, поскольку он улавливает все исключения и ошибки.