问题描述
在 Spring Webflux 中如何确定抛出了哪个异常并从中获取状态码。 这是我的控制器代码的结构。
@GetMapping("/")
fun getResults() : Mono<ResponseEntity<AccountDTO>>{
return Service.getResult()
.map {
}.doOnError {
//how to get statuscode here
throw ResponseStatusException(HttpStatus.NOT_FOUND,it.message!!)
}
这里可以获取自定义的消息抛出,但是如何获取状态码呢?而不是 HttpStatus.NOT_FOUND。我想捕获服务层抛出的状态码。或者有没有办法让异常抛出?
解决方法
I found a solution that works.
@GetMapping("/")
fun getResults() : Mono<ResponseEntity<AccountDTO>>{
return Service.getResult()
.map {
}.doOnError {
if(it is NotFoundException)
{
throw ResponseStatusException(HttpStatus.NOT_FOUND)
}
else{
throw ResponseStatusException(HttpStatus.INTERNAL_SERVER_ERROR)
}
}