统一异常处理


框架对异常进行了统一处理,会回滚事务并返回统一的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": "查询不到对应的权限"
}