Как использовать Smallrye Mutiny для вызова метода void, который выдает проверенные исключения ⇐ JAVA
Как использовать Smallrye Mutiny для вызова метода void, который выдает проверенные исключения
При использовании Smallrye Mutiny для обработки исключений императивный код становится более гибким. Я даже могу вызывать методы, которые выдают проверенные исключения, используя для их обработки Unchecked.supplier():
LifecycleConfiguration lifecycleConfiguration = Uni.createFrom().item(Unchecked.supplier(() -> minioClient.getBucketLifecycle(GetBucketLifecycleArgs.builder().bucket(bucketName).build()))) .onFailure().transform(e -> new CommonSystemErrorException("Не удалось получить конфигурацию жизненного цикла корзины MinIO", e)) .await().на неопределенный срок(); Однако я не могу применить тот же подход к методам, которые генерируют проверенные исключения и возвращают void. Например, рассмотрим следующий метод:
public void setBucketLifecycle(SetBucketLifecycleArgs args) выдает ErrorResponseException, InsufficientDataException, InternalException, InvalidKeyException, InvalidResponseException, IOException, NoSuchAlgorithmException, ServerException, XmlParserException { пытаться { this.asyncClient.setBucketLifecycle(args).get(); } catch (InterruptedException var3) { выбросить новое RuntimeException(var3); } catch (ExecutionException var4) { this.asyncClient.throwEncapsulatedException(var4); } } Если я напишу код ниже, IDE выдаст оповещения в двух местах:
// Предупреждения vvvv IDE: невозможно разрешить метод 'item(Supplier)' Uni.createFrom().item(Unchecked.supplier(() -> minioClient.setBucketLifecycle(SetBucketLifecycleArgs.builder().config(lifecycleConfiguration).bucket(bucketName).build()))) // ^^^^ Предупреждения IDE: неверный тип возвращаемого значения в лямбда-выражении: void невозможно преобразовать в T .onFailure().transform(e -> new CommonSystemErrorException("Не удалось установить конфигурацию жизненного цикла сегмента MinIO", e)) .await().на неопределенный срок(); Возможно ли, что я могу вызывать методы, которые генерируют проверенные исключения и возвращают void, используя Smallrye Mutiny, без дополнительного использования try и catch?
При использовании Smallrye Mutiny для обработки исключений императивный код становится более гибким. Я даже могу вызывать методы, которые выдают проверенные исключения, используя для их обработки Unchecked.supplier():
LifecycleConfiguration lifecycleConfiguration = Uni.createFrom().item(Unchecked.supplier(() -> minioClient.getBucketLifecycle(GetBucketLifecycleArgs.builder().bucket(bucketName).build()))) .onFailure().transform(e -> new CommonSystemErrorException("Не удалось получить конфигурацию жизненного цикла корзины MinIO", e)) .await().на неопределенный срок(); Однако я не могу применить тот же подход к методам, которые генерируют проверенные исключения и возвращают void. Например, рассмотрим следующий метод:
public void setBucketLifecycle(SetBucketLifecycleArgs args) выдает ErrorResponseException, InsufficientDataException, InternalException, InvalidKeyException, InvalidResponseException, IOException, NoSuchAlgorithmException, ServerException, XmlParserException { пытаться { this.asyncClient.setBucketLifecycle(args).get(); } catch (InterruptedException var3) { выбросить новое RuntimeException(var3); } catch (ExecutionException var4) { this.asyncClient.throwEncapsulatedException(var4); } } Если я напишу код ниже, IDE выдаст оповещения в двух местах:
// Предупреждения vvvv IDE: невозможно разрешить метод 'item(Supplier)' Uni.createFrom().item(Unchecked.supplier(() -> minioClient.setBucketLifecycle(SetBucketLifecycleArgs.builder().config(lifecycleConfiguration).bucket(bucketName).build()))) // ^^^^ Предупреждения IDE: неверный тип возвращаемого значения в лямбда-выражении: void невозможно преобразовать в T .onFailure().transform(e -> new CommonSystemErrorException("Не удалось установить конфигурацию жизненного цикла сегмента MinIO", e)) .await().на неопределенный срок(); Возможно ли, что я могу вызывать методы, которые генерируют проверенные исключения и возвращают void, используя Smallrye Mutiny, без дополнительного использования try и catch?
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Как использовать аннотацию SmallRye Fault Tolerance @Ready с Smallrye Mutiny?
Anonymous » » в форуме JAVA - 0 Ответы
- 22 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Как использовать аннотацию SmallRye Fault Tolerance @Ready с Smallrye Mutiny?
Anonymous » » в форуме JAVA - 0 Ответы
- 15 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Как использовать аннотацию SmallRye Fault Tolerance @Ready с Smallrye Mutiny?
Anonymous » » в форуме JAVA - 0 Ответы
- 9 Просмотры
-
Последнее сообщение Anonymous
-