全局异常处理
场景,在web项目中,如果后端操作数据发生错误时,返回的错误不符合开发规范,所有前端是无法识别和处理的,所有我们有必要创建一个全局处理异常的函数用于处理异常,将异常包装成前端能够识别的样式
常常配合自定义异常枚举类使用
package com.example.exception;
import com.example.pojo.Result;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;
// 全局异常处理函数
@RestControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(Exception.class)
public Result handleException(Exception e){
e.printStackTrace();
return Result.error("对不起,操作失败,请联系管理员");
}
}
设置全局异常处理的函数格式是固定的,直接使用就行,其中有两个类很重要
@RestControllerAdvice
:表明定义了一个全局处理异常的函数@ExceptionHandler
:划定管理的范围,Exception.class
表示全部类,即管理全部异常信息
其中,由于@RestControllerAdvice注解包含了ResponseBody注解,所有返回的数据使用JSON的数据返回的,符号开发约定规范,前端能够处理