我有RestController,回傳Mono. 如果我抓住了TimeoutException,我需要登錄并回傳我的自定義ErrorResponse. 現在,它的作業原理如下:
return service.someMethod(phone, ctx)
.doOnNext(resp -> log("done")
.timeout(timeout)
.doOnError(TimeoutException.class, e -> log.error(ServiceErrors.CLIENT_SEARCH_TIMEOUT_ERROR e.getLocalizedMessage()))
.onErrorResume(TimeoutException.class, e -> Mono.just(new MyCustomWrapper<>(
new MyCustomError("EIPbXsxiuA" , ServiceErrors.CLIENT_SEARCH_TIMEOUT_ERROR))
);
我想結合 doOnError 和 one rrorResume。我怎樣才能做到這一點?
uj5u.com熱心網友回復:
如何洗掉doOnError并將日志記錄放入其中onErrorResume:
return service.someMethod(phone, ctx)
.doOnNext(resp -> log("done")
.timeout(timeout)
.onErrorResume(TimeoutException.class, e -> {
log.error(ServiceErrors.CLIENT_SEARCH_TIMEOUT_ERROR e.getLocalizedMessage())
Mono.just(new MyCustomWrapper<>(
new MyCustomError("EIPbXsxiuA" , ServiceErrors.CLIENT_SEARCH_TIMEOUT_ERROR))
});
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/390144.html
標籤:爪哇 弹簧-webflux
上一篇:從流分組中獲取唯一日期串列
