我正在為 Spring Webflux 中的 WebClient 回應撰寫例外處理程式。我沒有在我破碎的片段之前和之后包含代碼,以保持這個簡短而甜蜜。目前我有以下代碼:
.retrieve()
.bodyToMono(String::class.java)
.doOnError {
WebClientResponseException::class.java,
error -> logger.error(error.getResponseBodyAsString())
}
.awaitSingle()
我是 Kotlin 和 Spring Webflux 的回應式編程的新手。我無法理解 IntelliJ 的含義
意外標記(使用 ';' 分隔同一行上的運算式)

以下方法簽名的語法對我來說是正確的:
<E extends Throwable> Mono<T> doOnError(Class<E> exceptionType, final Consumer<? super E> one rror)
uj5u.com熱心網友回復:
回答您的問題有點困難,因為doOnError您的 IDE 顯示的功能似乎與您發布檔案的功能不同。畢竟,IDE 顯示 lambda 是有效的并且只有一個Throwable引數,但是您發布的檔案需要兩個引數。
如果您只想命名 lambda 引數,則必須在 lambda 的最開始處這樣做:
.doOnError { error ->
// your code here
}
如果您需要指定第一個引數,請在括號內執行此操作,就像使用普通方法一樣:
.doOnError(WebClientResponseException::class.java) { error ->
logger.error(error.getResponseBodyAsString())
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/406209.html
標籤:
