Spring Webflux:根据抛出的异常返回状态码和消息

问题描述

在 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)
                    }
                    
                }

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...