/**
-
@author guozhengMu
-
@version 1.0
-
@date 2019/8/21 14:55
-
@description
-
@modify
*/
@RestController
@RequestMapping(value = “/test”, method = RequestMethod.GET)
public class TestController {
@RequestMapping(“/json”)
public ResponseInfo test() {
try {
// 模拟异常业务代码
int num = 1 / 0;
return new ResponseInfo(“测试数据”);
} catch (Exception e) {
return new ResponseInfo(500, “系统异常,请联系管理员!”);
}
}
}
如上,接口的返回数据处理便优雅了许多。针对上面接口做个测试,启动项目,通过浏览器访问:localhost:8096/test/json,得到响应结果:
{“code”:500,“msg”:“系统异常,请联系管理员!”,“data”:null}
3 全局异常处理
========
3.1 系统定义异常处理
============
新建一个 ExceptionHandlerAdvice 全局异常处理类,然后加上 @RestControllerAdvice 注解即可拦截项目中抛出的异常,如下代码中包含了几个异常处理,如参数格式异常、参数缺失、系统异常等,见下例:
@RestControllerAdvice
@Slf4j
public class ExceptionHandlerAdvice {
// 参数格式异常处理
@ExceptionHandler({IllegalArgumentException.class})
@ResponseStatus(HttpStatus.BAD_REQUEST)
public ResponseInfo badRequestException(IllegalArgumentException exception) {
log.error(“参数格式不合法:” + e.getMessage());
return new ResponseInfo(HttpStatus.BAD_REQUEST.value() + “”, “参数格式不符!”);
}
// 权限不足异常处理
@ExceptionHandler({AccessDeniedException.class})
@Respo