1.上目录结构

- GlobalExceptionHandler .java 类 中 以下内容
package com.school.service_base.exceptionhandler;
import com.school.commonutils.R;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;
/**
* @User: Json
* @Date: 2021/11/23
**/
@ControllerAdvice
public class GlobalExceptionHandler {
//指定出现什么异常执行这个方法
// 1.1 全局异常处理
@ExceptionHandler(Exception.class)
@ResponseBody //为了返回数据
public R error(Exception e){
e.printStackTrace();
return R.error().message("请稍后重试噢~");
}
// 1.2 特定异常处理 实际开发中用的不多
@ExceptionHandler(ArithmeticException.class)
@ResponseBody //为了返回数据
public R error(ArithmeticException e){
e.printStackTrace();
return R.error().message("特定异常处理ArithmeticException~");
}
// 1.3 自定义异常处理
// 1) 创建一个自定义异常类继承RuntimeException 写异常属性
// 2)再这个全局异常类中 添加以下方法
//注:自定义异常 不会自动抛出异常 需要手动抛出
@ExceptionHandler(schoolException.class)
@ResponseBody //为了返回数据
public R error(schoolException e){
e.printStackTrace();
return R.error().code(e.getCode()).message(e.getMsg());
}
// 1 统一 异常处理
// 1.1 全局异常处理
// 1.2 特定异常处理
// 1.3 自定义异常处理
// 2. 统一日志处理
// Logback 使用
}3.自定义异常类
schoolException.java
package com.school.service_base.exceptionhandler;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @User: Json
* @Date: 2021/11/28
* 自定义异常类
**/
@Data //自动生成 get set方法
@AllArgsConstructor //自动生成 有参数的构造方法
@NoArgsConstructor //自动生成 无参数构造方法
public class schoolException extends RuntimeException{
private Integer code; //状态码
private String msg; //异常信息
}- 测试

















