Я использую Spring и операторов из проектного реактора (Mono, Flux и т. Д.), И мой вопрос касается обработки ошибок. Допустим, у меня есть этот код:
val fluxOfNames : Flux<String> = ..
fluxOfNames.flatMap { name ->
externalResource.fetchInfo(name)
}.doOnError { throwable ->
// TODO How can I get the "name" that failed?
println("$name failed due to ${throwable.message")
}. ..
Я бы хотел напечатать name
, который не удался, но он не входит в область действия в лямбда-функции, переданной doOnError
afaik. Я мог бы, вероятно, обернуть вызов к externalResource.fetchInfo(name)
в пользовательское исключение, содержащее значение параметра name
, но это быстро становится уродливым, если мне придется делать это повсеместно.
Могу ли я получить значение name
в лямбда-выражении doOnError
, когда throwable
не содержит эту информацию?