springboot 学习 -- 全局异常处理

本贴最后更新于 2241 天前,其中的信息可能已经时异事殊

概述

  • 在 springboot 学习过程中,全局异常处理,捕获所有 controller 异常。这里就以未登录异常示例

一、自定义登录异常

  • 自定义一个异常类,继承 RuntimeException
package com.oneroot.eos.sysException;

import lombok.Data;

/**
 * @DESC 登录异常
 * @Author:Caixiaowei
  * @Date:2018/11/3
  * @Time:上午10:38
  */
@Data
public class AuthorizeException extends RuntimeException{

    private int code;

 private String message;

 public AuthorizeException(){
        super();
  }

    public AuthorizeException(int code, String message){
        this.setCode(code);
 this.setMessage(message);
  }
}

二、定义异常 Handler 捕获异常处理

  • 通过使用 @ControllerAdvice 定义统一的异常处理类,而不是在每个 Controller 中逐个定义。@ExceptionHandler 用来定义函数针对的异常类型
@RestControllerAdvice
public class GlobalExceptionHandler extends ResponseEntityExceptionHandler {

    public ResultEntity authorizeExceptionHandler(HttpServletRequest request, final Exception e, HttpServletResponse response) {
        response.setStatus(HttpStatus.BAD_REQUEST.value());
  AuthorizeException exception = (AuthorizeException) e;
 return ResultEntity.createByErrorCodeMessage(exception.getCode(), exception.getMessage());
  }

}
  • Spring

    Spring 是一个开源框架,是于 2003 年兴起的一个轻量级的 Java 开发框架,由 Rod Johnson 在其著作《Expert One-On-One J2EE Development and Design》中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 JavaEE 应用程序开发提供集成的框架。

    943 引用 • 1460 回帖 • 3 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...