背景:
由于在serviceImpl中处理数据业务逻辑时,有较多数据返回异常。通过HashMap或者是自定义dto返回异常给Controller,再处理给用户显示的话,步骤过于麻烦,因此,想着通过自定义ServiceException,用于直接抛出异常,在Controller中直接进行异常处理即可。
实现:
ServiceImpl中直接抛出需要返回给用户看的数据,这边try catch 返回。
@RequestMapping(value = "/page",method = RequestMethod.POST)
public ReturnVo page(@Validated MpUserPageDto mpUserPageDto) throws Exception {
try{
Page<MpUserPageDto> page = new Page<>(mpUserPageDto.getPageNum(),mpUserPageDto.getPageSize());
return ReturnVo.success(mpUserService.selectPageExt(page, mpUserPageDto));
}catch (ServiceException e){
return ReturnVo.error(e.getReturnCodeEm());
}catch (Exception e){
e.printStackTrace();
return ReturnVo.error(ReturnCodeEm.UNKNOWN_ERROR);
}
}