| 
                         编写controller模拟抛出业务异常 
- @RestController  
 - @RequestMapping("/user")  
 - public class UserController {  
 - @PostMapping(value = "/update")  
 - Response<Boolean> update(User user){  
 -  //todo 此处为模拟异常抛出  
 -  if(true){  
 -  throw new MyException("更新失败");  
 -  }  
 -  //todo 此处为模拟返回  
 -  Response<Boolean> response = new Response<>();  
 -  response.setCode(Code.SUCCESSED);  
 -  response.setResult(true);  
 -  return response;  
 - }  
 - } 
 
  
postMan模拟请求接口,进行验证 
  
数据绑定异常处理 
通常我们操作数据的时候,不仅前端需要进行数据校验,后端也应当进行拦截和进行相应的错误提示,JSR-303校验框架也是我们的一种选择。 
编写实体`User`,并对属性进行注解控制 
- public class User {  
 -  @NotNull(message = "用户名不能为空")  
 -  private String userName;  
 -  private int age;  
 -  //... 
 
  
全局异常控制类加入拦截 
- @ControllerAdvice  
 - public class GlobalExceptionHandler {  
 -  private Logger logger = LoggerFactory.getLogger(GlobalExceptionHandler.class);  
 -  @ExceptionHandler(value = BindException.class)  
 -  @ResponseBody  
 -  public Response<String> bindExceptionErrorHandler(BindException ex) throws Exception {  
 -  logger.error("bindExceptionErrorHandler info:{}",ex.getMessage());  
 -  Response<String> r = new Response<>();  
 -  StringBuilder sb = new StringBuilder();  
 -  FieldError fieldError = ex.getFieldError();  
 -  sb.append(fieldError.getDefaultMessage());  
 -  r.setMsg(sb.toString());  
 -  r.setCode(Code.FAILED);  
 -  return r;  
 -  }  
 -  //... 
 
  
编写控制器 
- @RestController  
 - @RequestMapping("/user")  
 - public class UserController {  
 -  @PostMapping(value = "/add")  
 -  Response<User> add(@Validated User user){  
 -  //todo 此处为模拟返回  
 -  Response<User> response = new Response<>();  
 -  response.setCode(Code.SUCCESSED);  
 -  response.setResult(new User());  
 -  return response;  
 -  }  
 -  //... 
 
  
postMan模拟请求 
不填写任何属性,模拟添加操作,准确进行拦截和报错 
  
项目结构预览: 
  
结尾 
适合的才是最好的,每个团队都应摸索出自己的一套异常解决方案,本文所提仅针对业务异常,希望大家也能有所收获 
【责任编辑:庞桂玉 TEL:(010)68476606】 
            点赞 0                        (编辑:我爱故事小小网_铜陵站长网) 
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! 
                     |