try和catch进行异常处理
- 效果图
- 前言
- 1、公共拦截器进行异常处理
- 1.1、创建公共报错处理的方法
- 1.2、@ControllerAdvice中设置要拦截的类
- 1.3、@ExceptionHandler中写处理的异常类
- 2、完善错误拦截器
- 2.1、效果
效果图
前言
当用户名重复数据库会报错,此时就需要捕获异常操作
1、公共拦截器进行异常处理
1.1、创建公共报错处理的方法
1.2、@ControllerAdvice中设置要拦截的类
1.3、@ExceptionHandler中写处理的异常类
package com.example.ruiji_demo.common;import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;import java.sql.SQLIntegrityConstraintViolationException;/*** @author jitwxs* @date 2024年03月30日 22:24*/
@ControllerAdvice(annotations = {RestController.class, Controller.class})
@ResponseBody
@Slf4j
public class GlobalExceptionHandler {@ExceptionHandler(SQLIntegrityConstraintViolationException.class)public R<String> exceptionHandler(SQLIntegrityConstraintViolationException ex){log.error(ex.getMessage());return R.error("添加失败了");}
}
2、完善错误拦截器
获取到是否是含有Duplicate entry的错误,如果是就提取出来名称,然后添加到报错信息
package com.example.ruiji_demo.common;import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;import java.sql.SQLIntegrityConstraintViolationException;/*** @author jitwxs* @date 2024年03月30日 22:24*/
@ControllerAdvice(annotations = {RestController.class, Controller.class})
@ResponseBody
@Slf4j
public class GlobalExceptionHandler {/*** 异常处理方法* @param ex* @return*/@ExceptionHandler(SQLIntegrityConstraintViolationException.class)public R<String> exceptionHandler(SQLIntegrityConstraintViolationException ex){log.error(ex.getMessage());
// 获取到是否是含有Duplicate entry的错误,如果是就提取出来名称,然后添加到报错信息if(ex.getMessage().contains("Duplicate entry")){String[] split = ex.getMessage().split(" ");String msg = split[2] + "已存在";return R.error(msg);}return R.error("添加失败");}
}