使用 CouchbaseAsyncCluster.openBucket 调用时如何捕获错误
How to capture error while using CouchbaseAsyncCluster.openBucket call
我有以下创建 Couchbase 集群并尝试打开存储桶的代码。给桶的名称是错误的。我想捕获错误,因为存储桶不存在。使用 java 客户端版本 2.7.6 和 Java 11.
CouchbaseAsyncCluster cluster =
CouchbaseAsyncCluster.create("localhost");
cluster.authenticate("Administrator", "password");
rx.Observable<AsyncBucket> bucket;
cluster.openBucket("wrongName")
.doOnError(e -> System.out.println("error occurred"))
.doOnNext(openbucket -> System.out.println("bucket opened"))
.subscribe(openBucket -> System.out.println("subscription
complete"));
以上代码不会产生任何错误。
捕获错误打开桶的最佳方法是什么?
问题可能是您正在订阅 Observable,它正在启动异步网络操作,但在它完成之前,您的应用程序正在终止。
为了测试,您可以尝试制作 Observable 块,以便它在应用程序终止之前完成:
cluster.openBucket("wrongName")
.doOnError(e -> System.out.println("error occurred"))
.doOnNext(openbucket -> System.out.println("bucket opened"))
.toBlocking()
.subscribe(openBucket -> System.out.println("subscription complete"));
我对此进行了测试,但出现 'Bucket "wrongName" does not exist.' 错误。
我有以下创建 Couchbase 集群并尝试打开存储桶的代码。给桶的名称是错误的。我想捕获错误,因为存储桶不存在。使用 java 客户端版本 2.7.6 和 Java 11.
CouchbaseAsyncCluster cluster =
CouchbaseAsyncCluster.create("localhost");
cluster.authenticate("Administrator", "password");
rx.Observable<AsyncBucket> bucket;
cluster.openBucket("wrongName")
.doOnError(e -> System.out.println("error occurred"))
.doOnNext(openbucket -> System.out.println("bucket opened"))
.subscribe(openBucket -> System.out.println("subscription
complete"));
以上代码不会产生任何错误。 捕获错误打开桶的最佳方法是什么?
问题可能是您正在订阅 Observable,它正在启动异步网络操作,但在它完成之前,您的应用程序正在终止。
为了测试,您可以尝试制作 Observable 块,以便它在应用程序终止之前完成:
cluster.openBucket("wrongName")
.doOnError(e -> System.out.println("error occurred"))
.doOnNext(openbucket -> System.out.println("bucket opened"))
.toBlocking()
.subscribe(openBucket -> System.out.println("subscription complete"));
我对此进行了测试,但出现 'Bucket "wrongName" does not exist.' 错误。