关于统一异常处理

来源:3-12 精简返回给客户端的异常内容

LemonCat

2022-10-13

@Slf4j
@RestControllerAdvice
public class ExceptionAdvice {

@ResponseBody
@ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)
@ExceptionHandler(Exception.class)
public String validExceptionHandler(Exception e) {
    log.error("执行异常",e);
    if (e instanceof MethodArgumentNotValidException) {
        MethodArgumentNotValidException exception = (MethodArgumentNotValidException) e;
        //将错误信息返回给前台
        return exception.getBindingResult().getFieldError().getDefaultMessage();
    }
    else if(e instanceof EmosException){
        EmosException exception=(EmosException)e;
        return exception.getMsg();
    }
    else if(e instanceof UnauthorizedException){
        return "你不具有相关权限";
    }
    else {
        return "后端执行异常";
    }

}

}
老师,这里加了@RestControllerAdvice后,里面的@ResponseBody是不是不用加?

@ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)这是啥意思?第一次见这个注解

写回答

2回答

tgywatalive

2023-01-11

我怎么感觉确实不用写

0
0

神思者

2022-10-14

全局处理异常之后,把简化的异常信息返回给前端需要写到响应里面,@ResponseBody注解必须写

0
0

SpringBoot 在线协同办公小程序开发 全栈式项目实战

未来趋势型业务 + 前后端综合技术栈 + 惊艳的细节打磨

1798 学习 · 1915 问题

查看课程