RESTEasy中的通用异常处理ExceptionMapper

  • 时间:
  • 浏览:1

RESTEasy是JBoss提供的另一有另俩个Restful基础框架,使用它亲戚亲戚亲戚我们都能不能 很方便的构建亲戚亲戚亲戚我们都的Restful服务,之前 它也全版符合Java的JAX-RS2.0标准,全都第三方Restful框架也也有基于RESTEasy开发的。

这样做也没那此问题,之前 亲戚亲戚亲戚我们都的接口不全都 另一有另俩个,每个接口时要进行try catch来正确处理异常,这样做显然不符合亲戚亲戚亲戚我们都的编程思想,亲戚亲戚亲戚.只要把所有异常集中到另一有另俩个地方正确处理。

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

肯能亲戚亲戚亲戚我们都的Restful框架是基于RESTEasy的,这样亲戚亲戚亲戚我们都就能不能 使用ExceptionMapper来实现另一有另俩个通用异常正确处理类。

ExceptionMapper是provider的另一有另俩个协议,它会将Java的异常映射到Response对象。全时要进行通用异常正确处理,亲戚亲戚亲戚我们都只时要写另一有另俩个类来实现ExceptionMapper接口,并把它声明为另一有另俩个provider即可:

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

在你你这人接口中,亲戚亲戚亲戚我们都并这样对异常做特殊正确处理,也这样catch另一有另俩个Exception异常,仅仅是把异常抛出,而所有的异常正确处理都集中在了MyApplicationExceptionHandler中。

里边的ExceptionMapper的实现肯能写好了,下面亲戚亲戚亲戚我们都写个Restful API来测试下:

在任何框架中也有可正确处理的涉及到异常正确处理,Restful框架也是这样。按照亲戚亲戚亲戚我们都一般传统异常正确处理依据 ,在Restful的最外层,亲戚亲戚亲戚我们都一般会对所有的业务调用都加带try catch,以免异常被用户接收到,比如亲戚亲戚亲戚我们都有这样另一有另俩个Restful服务:

亲戚亲戚亲戚我们都再写另一有另俩个不合法的请求,请求的参数是个字符串而也有数值:

亲戚亲戚亲戚我们都测一下你你这人接口,首先亲戚亲戚亲戚我们都写另一有另俩个合法的请求:

里边UserApi接口中的getUserBId()依据 调用了userService.getUser()服务,你你这人服务会抛出有些异常,UserApi时要捕获异常并返回客户的另一有另俩个错误的响应。还有有些亲戚亲戚亲戚我们都一般会在API层catch另一有另俩个Exception异常,也全都 捕获所有肯能发生的异常情况汇报,以免前端出显不友好的错误提示。