我想通过添加WebExceptionHandler来处理API的异常。我可以更改状态代码,但当我想要更改响应的正文时,我就卡住了:例如,添加异常消息或自定义对象。
有没有人举个例子?
如何添加我的WebExceptionHandler:
HttpHandler httpHandler = WebHttpHandlerBuilder.webHandler(toHttpHandler(routerFunction))
.prependExceptionHandler((serverWebExchange, exception) -> {
exchange.getResponse().setStatusCode(myStatusGivenTheException);
exchange.getResponse().writeAndFlushWith(??)
return Mono.empty();
}).build();
2条答案
按热度按时间lymnna711#
WebExceptionHandler
级别相当低,因此您必须直接处理请求/响应交换。请注意:
Mono<Void>
返回类型应该发出响应处理结束的信号;这就是为什么它应该连接到写入响应的Publisher
您的
WebExceptionHandler
可能如下所示:lrl1mhuk2#
给出了答案,为了序列化对象,我使用以下方式: