springBoot 全局异常统一处理
2019-03-27 18:50
771 查看
版权声明:本文为博主原创文章,如需转载请注明原文出处: https://blog.csdn.net/u010979642/article/details/88852459
springBoot 全局异常统一处理
注解说明
// 对某一类异常进行统一处理, 从而能够减少代码重复率和复杂度 @ExceptionHandler // 异常集中处理, 更好的将业务逻辑和异常处理解耦 @ControllerAdvice // 将某种异常映射为HTTP状态码 @ResponseStatus
定义全局异常捕获类
@ControllerAdvice public class ExceptionController { private static final Logger LOGGER = LoggerFactory.getLogger(ExceptionController.class); @ExceptionHandler(Exception.class) @ResponseStatus(HttpStatus.BAD_REQUEST) @ResponseBody public AIResponse exceptionHandler(Exception exception) { LOGGER.info("exception: " + exception.getMessage()); return AIResponse.failed(exception.getMessage()); } @ExceptionHandler(NullPointerException.class) @ResponseStatus(HttpStatus.ACCEPTED) @ResponseBody public AIResponse exceptionHandler(NullPointerException nullPointerException) { LOGGER.info("nullPointerException: " + nullPointerException.getMessage()); return AIResponse.failed(nullPointerException.getMessage()); } }
测试验证
@Controller @RequestMapping("/user") public class UserController { @RequestMapping("query") @ResponseBody public AIResponse query(@RequestBody RequestDTO requestDTO) { // ... } }
如果项目中采用 AOP, 则 AOP 中的异常要抛出, 不要捕获处理
@Component @Aspect @Slf4j public class AALAop { @Around("execution(public * com.answer.aal.controller..*Controller.*(..))") public Object doAroundAdvice(ProceedingJoinPoint proceedingJoinPoint) throws Throwable { Object result; Object[] args = proceedingJoinPoint.getArgs(); result = proceedingJoinPoint.proceed(args); /** ERROR try { result = proceedingJoinPoint.proceed(args); } catch (Throwable throwable) { throwable.printStackTrace(); } */ return result; } }
相关文章推荐
- spring 全局统一处理异常
- Spring Boot @ControllerAdvice 处理全局异常,返回固定格式Json
- springboot全局异常控制处理
- SpringBoot--AOP和统一异常处理
- STS创建Spring Boot项目实战(Rest接口、数据库、用户认证、分布式Token JWT、Redis操作、日志和统一异常处理)
- 【异常处理】Springboot对Controller层方法进行统一异常处理
- spring boot - cloud (二) 规范响应格式以及统一异常处理
- Spring Boot中Web应用的统一异常处理
- Springboot整合(5)——全局异常处理
- springBoot 全局异常处理 报错 : Could not resolve method parameter at index 0 in public .....
- Spring Boot全局异常处理解析
- Spring-Boot(五) 全局异常处理
- Spring Boot 异常统一处理
- springboot + shiro 权限注解、统一异常处理、请求乱码解决
- 轻松实现SpringBoot项目异常全局处理
- SpringBoot学习之全局异常处理设置(返回JSON)
- springboot结合全局异常处理实现登录注册验证
- springboot rest controller 统一异常处理,ajax 形式
- Springboot(10)轻松搞定统一异常处理
- Spring Boot 全局异常处理