在 Spring Web 中,我们可以使用注解 @ExceptionHandler 来处理控制器的服务器和客户端错误。
我尝试将此注释与 web-flux 控制器一起使用,它仍然对我有用,但经过一番调查,我在这里发现了
Spring Web Reactive 的情况更加复杂。因为反应流是由与执行控制器方法的线程不同的线程评估的,所以异常不会自动传播到控制器线程。这意味着@ExceptionHandler 方法仅适用于直接处理请求的线程中抛出的异常。如果我们想使用@ExceptionHandler 特性,流中抛出的异常必须传播回线程。这似乎有点令人失望,但在撰写本文时 Spring 5 仍未发布,因此错误处理可能仍然会变得更好。
所以我的问题是如何将异常传播回线程。有没有关于使用 @ExceptionHandler 和 Spring web Flux 的好例子或文章?
更新:从spring.io看起来它是受支持的,但仍然缺乏一般的理解
谢谢,