2. 全局错误处理机制的核心原理
Vert.x Web 的全局错误处理基于 错误处理器(Error Handler),其核心流程如下:
-
异常触发:在路由处理程序(
Handler<RoutingContext>
)中抛出未捕获的异常。 -
框架捕获:Vert.x 自动捕获异常,并根据异常类型或状态码匹配对应的错误处理器。
-
处理器调用:调用注册的
errorHandler
,生成统一错误响应。
2.1 代码逐层解析
(1) 全局错误处理器注册
router.errorHandler(500) { ctx ->
val error = (ctx.failure()?.message) ?: "Internal server error"
factory.buildErrorResponse(ctx, 500, "INTERNAL_ERROR", error)
}