Реактивный шаблон салата Java - ловить ошибки? - PullRequest
1 голос
/ 23 сентября 2019

Я пытаюсь использовать салат вместо джедаев для его реактивного паттерна.Jedis может заблокировать мой vertx eventloop и вместо того, чтобы делать это блокирующей операцией, я бы предпочел, чтобы она была реактивной.

Я могу успешно получать элементы из redis с помощью салата, но я не понял, как обрабатывать исключения.В качестве примера -

// Attempt A: Is the error in otherstuff?
redis.get(cacheKey).handle((response, otherstuff) -> {
            ...
        }).subscribe();

// Attempt B: Do I add a doOnError?
redis.get(cacheKey).handle((response, otherstuff) -> {
            ...
        }).doOnError((error) -> {
            logger.error(err);
        }).subscribe();

// Attempt C: Do I add my callbacks to subscribe?
redis.get(cacheKey).subscribe((response) -> {
            ...
        }, (err) -> {
            logger.error(err);
        });

Первое недоразумение, которое у меня возникает, - сколько способов я могу сделать одно и то же.Я нашел несколько способов получить значение, но я не нашел способа отловить ошибку.Ключ кеша, из которого он извлекает данные, не существует, я предполагаю, что где-нибудь будет выдана ошибка.

Как мне перехватить ошибки салата?

...