栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

springboot全局异常处理

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

springboot全局异常处理

@ControllerAdvice
@ResponseBody
@Slf4j
public class GlobalExceptionHandler {
    @ExceptionHandler(value = Exception.class)
    public Result exceptionHandler(HttpServletRequest request, Exception e) {
        Result result = new Result<>();
        //绑定异常是需要明确提示给用户的
       if (e instanceof MethodArgumentNotValidException) {
            MethodArgumentNotValidException methodArgumentNotValidException = (MethodArgumentNotValidException) e;
            log.error("create salt or password is error.", methodArgumentNotValidException);
            result.setCode(MemberEnum.SYSTEM_EXCEPTION.getCode());
            result.setMessage(Objects.requireNonNull(
                    methodArgumentNotValidException.getBindingResult().getFieldError()
            ).getDefaultMessage());
        } else if (e instanceof BindException) {
            BindException bindException = (BindException) e;
            log.error("create salt or password is error.", bindException);
            result.setCode(MemberEnum.SYSTEM_EXCEPTION.getCode());
            result.setMessage(Objects.requireNonNull(bindException.getFieldError()).getDefaultMessage());
        } else if (e instanceof NoSuchAlgorithmException) {
            log.error("create salt or password is error.", e);
            result.setMessage(e.getMessage());
            result.setCode((MemberEnum.SYSTEM_EXCEPTION.getCode()));
        } else {
            //不是上述异尝返回自定义code和message
            result.setMessage(MemberEnum.SYSTEM_EXCEPTION.getMessage());
            result.setCode(MemberEnum.SYSTEM_EXCEPTION.getCode());
        }
        return result;
    }
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/324816.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号