Теряется message Ошибки при асинхронном вызове метода в блоке .onErrorResume
Имеется такой блок кода. Вызывается сервис paymentService
, который возвращает ошибку NotFoundException
.
.flatMap { it ->
Mono.zip(
paymentService.findByName(it.t1.paymentMethodName)
.onErrorResume(NotFoundException::class.java) { error -> Mono.error(processLogError(error)) }
)
}
}
...
private fun processLogError(exception: NotFoundException): Throwable {
log.info("exception: ${exception.message}") // NULL
orderService.orderStatusToInvalid(exception.message).subscribe()
return exception
}
...
fun findByName(name: String): Mono<Payment> {
return paymentMethodRepository.findByName(name)
.switchIfEmpty(
Mono.error(NotFoundException("Custom Message NotFoundException"))
).map {
it?.toDto()
}
}
когда я воспроизвожу ситуацию, где paymentMethodRepository.findByName(name)
, возвращает empty
- ошибка NotFoundException
пробрасывается, обрабатывается хендлером и сообщение
"Custom Message NotFoundException"
отображается в теле ответа.
Но мне нужно это сообщение передать в другой метод.
Я вызываю .onErrorResume(NotFoundException::class.java)
тип сообщения перехватывается, но message null
.