概述
- 在 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());
}
}
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于