Spring 弹簧靴&x2B;WebFlux未使用@ControllerAdvice和@ExceptionHandler覆盖标准异常

Spring 弹簧靴&x2B;WebFlux未使用@ControllerAdvice和@ExceptionHandler覆盖标准异常,spring,spring-boot,kotlin,exception,spring-webflux,Spring,Spring Boot,Kotlin,Exception,Spring Webflux,我有一个全局错误处理程序类来捕获自定义异常并返回自定义响应 当尝试使用@Override或@ExceptionHandler捕获标准异常时,Spring Boot仍然返回其自定义响应对象。尽管我可以看到异常被我的@ExceptionHandler方法捕获 我不确定这是否与它是webflux应用程序这一事实有关 这是我的代码: @RestController @RequestMapping("/c") class CaseController(private val caseM

我有一个全局错误处理程序类来捕获自定义异常并返回自定义响应

当尝试使用
@Override
@ExceptionHandler
捕获标准异常时,Spring Boot仍然返回其自定义响应对象。尽管我可以看到异常被我的
@ExceptionHandler
方法捕获

我不确定这是否与它是webflux应用程序这一事实有关

这是我的代码:

@RestController
@RequestMapping("/c")
class CaseController(private val caseManagementService: 
 CaseManagementService) {

@PostMapping()
fun createCase(@Valid @RequestBody caseRequest: CaseRequestDto, 
 @RequestHeader(value = "X-API-KEY") xApiKey: String): 
 ResponseEntity<CaseResponseDto> {

    if (StringUtils.isBlank(xApiKey)) {
        throw CaseManagementIllegalArgumentException("Invalid 
                                                     request")
    }

    return caseManagementService.createAccount(caseRequest)
 }
}
任何想法都将不胜感激

@ControllerAdvice
class ControllerExceptionHandler {

@ExceptionHandler(RuntimeException::class)
fun handleRunTimeException(e: RuntimeException): ResponseEntity<Any> 
{
    logger.error("Exception caught in handleRunTimeException: $e", e.printStackTrace())
    val response = ErrorResponse(MessageConstants.SYSTEM_ERROR, e.message, e, serverError)
    return ResponseEntity<Any>(response, badRequest)
  }

}
"timestamp": "2020-10-28T01:02:13.264+00:00",
"path": "/svoc/case-management/v1/cases",
"status": 500,
"error": "Internal Server Error",
"message": "JSON encoding error:",
"requestId": "d599572b-2",
"trace":"...."