RESTEasy中的通用异常处理ExceptionMapper

  • 时间:
  • 浏览:0
  • 来源:5分11选5_5分3D

大伙测一下你这些 接口,首先大伙写4个合法的请求:

ExceptionMapper是provider的4个协议,它会将Java的异常映射到Response对象。太多太多太多太多要进行通用异常解决,大伙只需用写4个类来实现ExceptionMapper接口,并把它声明为4个provider即可:

找不到做也找不到哪些问题报告 ,随后大伙的接口不若果4个,每个接口需用进行try catch来解决异常,找不到做显然不符合大伙的编程思想,大伙希望把所有异常集中到4个地方解决。

http://localhost:8080/RESTEasyExceptionMapperDemo/rest/users/1

RESTEasy是JBoss提供的4个Restful基础框架,使用它大伙可不能不能 很方便的构建大伙的Restful服务,随后它也完正符合Java的JAX-RS2.0标准,太多太多太多太多第三方Restful框架也前会 基于RESTEasy开发的。

在任何框架中前会 可解决的涉及到异常解决,Restful框架也是找不到。按照大伙一般传统异常解决土办法,在Restful的最外层,大伙一般会对所有的业务调用都添加try catch,以免异常被用户接收到,比如大伙有找不到4个Restful服务:

不可能 大伙的Restful框架是基于RESTEasy的,找不到大伙就可不能不能 使用ExceptionMapper来实现4个通用异常解决类。

后边UserApi接口中的getUserBId()土办法调用了userService.getUser()服务,你这些 服务会抛出一点异常,UserApi需用捕获异常并返回客户的4个错误的响应。还有一点大伙一般会在API层catch4个Exception异常,也若果捕获所有不可能 占据 的异常状态,以免前端出先不友好的错误提示。

后边的ExceptionMapper的实现不可能 写好了,下面大伙写个Restful API来测试下:

在你这些 接口中,大伙并找不到对异常做特殊解决,也找不到catch4个Exception异常,仅仅是把异常抛出,而所有的异常解决都集中在了MyApplicationExceptionHandler中。

大伙再写4个不合法的请求,请求的参数是个字符串而前会 数值:

http://localhost:8080/RESTEasyExceptionMapperDemo/rest/users/abc