我正在尝试创建一个条件,如果不满足,则会引发异常。但是我尝试了很多方法,但没有成功。
我的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且为空。
我该如何解决?有人可以帮忙吗?
尝试这个:
@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] 删除。
我来说两句