Vertx - 同一路由的多个 failureHandlers
Vertx - Multiple failureHandlers for the same route
问题很简单:是否可以为一条路由设置多个故障处理程序?
router.route(HttpMethod.POST, "/test")
.handler(LoggerHandler.create())
.handler(ResponseTimeHandler.create())
.failureHandler(MyCustomFailureHandler1.create())
.failureHandler(MyCustomFailureHandler2.create());
我目前正在使用 vert.x 版本 4.0.2,我可以在内部看到,我创建的每个失败处理程序都被添加到 failureHandlers 列表中,但是当抛出错误时,唯一的失败处理程序执行是指定的第一个。
从第一个失败处理程序 (MyCustomFailureHandler1.create()
) 开始,您必须调用 RoutingContext#next()
RoutingContext#next()
的文档指出:“如果不为处理程序调用 next,则处理程序应确保它结束响应,否则不会发送任何响应”。
在此处查看测试用例:testMultipleSetFailureHandler
问题很简单:是否可以为一条路由设置多个故障处理程序?
router.route(HttpMethod.POST, "/test")
.handler(LoggerHandler.create())
.handler(ResponseTimeHandler.create())
.failureHandler(MyCustomFailureHandler1.create())
.failureHandler(MyCustomFailureHandler2.create());
我目前正在使用 vert.x 版本 4.0.2,我可以在内部看到,我创建的每个失败处理程序都被添加到 failureHandlers 列表中,但是当抛出错误时,唯一的失败处理程序执行是指定的第一个。
从第一个失败处理程序 (MyCustomFailureHandler1.create()
) 开始,您必须调用 RoutingContext#next()
RoutingContext#next()
的文档指出:“如果不为处理程序调用 next,则处理程序应确保它结束响应,否则不会发送任何响应”。
在此处查看测试用例:testMultipleSetFailureHandler