框架对异常进行了统一处理,会回滚事务并返回统一的json信息到前端,在接口逻辑里的异常应尽量避免手动进行try,catch处理,而交给框架去处理。
如果需要手动抛出异常,例如主动返回错误信息给前端,请使用RestException进行抛出。例如:
@ApiOperation(value = "权限修改")
@PutMapping("/perm/{id}")
public RestData update(@PathVariable Long id, @RequestBody @Valid OfaPermission ofaPermission, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return this.formErrorValid(bindingResult);
}
OfaPermission permission = ofaPermissionService.getById(id);
if (AssertUtil.isEmpty(permission)) {
throw new RestException(-1, "查询不到对应的权限");
}
permission.setMenuId(ofaPermission.getMenuId());
permission.setPermission(ofaPermission.getPermission());
permission.setPermName(ofaPermission.getPermName());
ofaPermissionService.updateById(permission);
return addRestData();
}
上述代码如果id查询不到记录时,将自动返回给前端以下信息:
{
"code": -1,
"data": null,
"desc": "查询不到对应的权限"
}