【发布时间】:2021-05-20 17:39:42
【问题描述】:
在处理 RESTEasy 异常时,执行自定义异常处理通常非常简单(在这种情况下,目的是在接收 HTTP 请求时处理编组问题):
@Provider
class MissingKotlinParameterExceptionHandler : ExceptionMapper<MissingKotlinParameterException> {
override fun toResponse(exception: MissingKotlinParameterException?): Response {
println("my MissingKotlinParameterException mapper")
return Response.serverError().build()
}
}
然而,我遇到的特殊挑战是从不同的端点抛出相同的异常。例如,由于架构规范,/service1/foo 和 /service2/bar 返回完全独立的错误有效负载。是否可以根据某种配置或包结构来分离实现?
【问题讨论】:
-
您可以使用某种委托模式,其中主 ExceptionMapper 委托给不同的 ExceptionMapper。还可以选择使异常扩展 WebApplicationException ,其中可以提供响应。您可以做很多事情,包括按照 geoand 的建议注入 ResourceInfo