后台暴露的接口往往都需要处理异常逻辑的返回 ,如果每个接口都加入了异常处理,重复的代码就会很多 。这时我们可以考虑把共性的处理逻辑抽出来 。
分析一下 处理逻辑流程,首先 捕获异常 , 获取异常信息, 记录异常信息, 返回异常状态码以及自定义给前台的异常信息。 抽出其中的共性问题 记录异常是必须的共用的 返回的异常状态码以及异常信息自定义 根据不同的场景 有可能是不同的 所以 可以作以下的注解定义:
@Target(ElementType.METHOD)@Retention(RetentionPolicy.RUNTIME)@Documentedpublic @interface ResponseExceptionListener { /** * 错误状态码 默认500. * * @return the int */ int statusCode() default 500; /** * 错误信息 . * * @return the string */ String message() default "";}
接下来 使用aop 的环绕通知 来处理注解的 逻辑即可 这样 只要在接口方法上加入注解 即可处理 业务逻辑了