抛出异常Spring Boot Webflux

罗德里戈·巴蒂斯塔(Rodrigo Batista)

我正在尝试创建一个条件,如果不满足,则会引发异常。但是我尝试了很多方法,但没有成功。

我的restcontroller:

@GetMapping(value = ["/{id}"])
    fun find(@PathVariable id: String): Mono<ResponseEntity<Mono<Person>>> {
        return ResponseEntity.ok().body(service.find(id)).toMono()
}

我的服务

override fun find(id: String): Mono<Person> {
        return repository.findById(id).doOnError { throw DataNotFound("Person not found")}
  }

如果输入现有的ID,它将返回我的注册人。但是,如果我输入一个不存在的ID,而不是抛出异常,它将返回200且为空。

我该如何解决?有人可以帮忙吗?

伊利亚·辛科维奇(Ilya Zinkovich)

尝试这个:

@GetMapping(value = ["/{id}"])
fun find(@PathVariable id: String): Mono<ResponseEntity<?>> {
  service.find(id).map(person -> ResponseEntity.ok().body(person))
    .onErrorResume(DataNotFound.class, exception -> ResponseEntity.notFound())
}

fun find(id: String): Mono<Person> {
  repository.findById(id).onErrorMap(error -> new DataNotFound("Person not found"))
}

如果有人存在,则返回OK响应,否则返回NOT_FOUND。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在 Spring webflux 中抛出异常 vs Mono.error()

Spring Boot WebFlux测试未找到MockMvc

Spring Boot Webflux-验证配置属性

Mockito:需要但未调用 Webflux Spring boot

Spring Boot Webflux反应式API

Spring Boot 2 - Webflux - Websocket - Netty - 压缩

Spring Boot 2.6.5 中的 JpaRepository 抛出异常

Spring Boot HTTP 状态不抛出异常

部署为WAR时无法使用Spring Boot WebFlux解决视图异常

Spring Boot 2.1.5,WebFlux,Reactor:如何正确处理MDC

Spring Boot Webflux - flatMap 是链接 http 调用的正确方法吗?

什么是 Spring Boot Webflux 相当于 Morgan JS 库?

在Spring Boot Webflux中产生服务器发送的事件

在基于Spring Boot Webflux的微服务中,订户是谁?

在Spring Boot WebFlux上检索路径变量(功能方法)

Spring Boot WebFlux端点要使用哪个CoroutineScope

如何配置Spring Boot 2 WebFlux以使用SSL?

Spring Boot Webflux / Netty-检测关闭的连接

在spring-boot-webflux中不使用已配置的ObjectMapper

无法使用Apache Bench测试Spring Boot Webflux性能

spring-boot-starter-webflux不能使用AcceptHeaderLocaleResolver

如何使用 WebFlux 在 Spring Boot 2 中设置登录页面?

如何使用Spring Boot 2和WebFlux测试@Controller

Spring Boot 2-Webflux-Websocket-激活压缩

使用Spring Boot + WebFlux进行全局错误处理

Spring Boot-抛出异常或指示未找到项目

Spring Boot factoryBean 在创建对象时抛出异常

XSS攻击:在Spring Boot CRUDRepository中抛出更改异常?

spring boot验证器成功但没有异常抛出