阅读背景:

转:@ControllerAdvice + @ExceptionHandler 全局处理 Controller 层异常

来源:互联网 
继承 ResponseEntityExceptionHandler 类来实现针对 Rest 接口 的全局异常捕获,并且可以返回自定义格式:

复制代码
 1 @Slf4j
 2 @ControllerAdvice
 3 public class ExceptionHandlerBean  extends ResponseEntityExceptionHandler {
 4 
 5     /**
 6      * 数据找不到异常
 7      * @param ex
 8      * @param request
 9      * @return
10      * @throws IOException
11      */
12     @ExceptionHandler({DataNotFoundException.class})
13     public ResponseEntity<Object> handleDataNotFoundException(RuntimeException ex, WebRequest request) throws IOException {
14         return getResponseEntity(ex,request,ReturnStatusCode.DataNotFoundException);
15     }
16 
17     /**
18      * 根据各种异常构建 ResponseEntity 实体. 服务于以上各种异常
19      * @param ex
20      * @param request
21      * @param specificException
22      * @return
23      */
24     private ResponseEntity<Object> getResponseEntity(RuntimeException ex, WebRequest request, ReturnStatusCode specificException) {
25 
26         ReturnTemplate returnTemplate = new ReturnTemplate();
27         returnTemplate.setStatusCode(specificException);
28         returnTemplate.setErrorMsg(ex.getMessage());
29 
30         return handleExceptionInternal(ex, returnTemplate,
31                 new HttpHeaders(), HttpStatus.OK, request);
32     }
33 
34 } 
复制代码
继承 ResponseEntityExceptionHandler 类来实现针对 Re



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: