GlobalExceptionHandler
@ControllerAdvice指定攔截那些類型的控制器
annotations指定只對帶有@RestController或@Controller注解的類中的方法進(jìn)行異常處理肌括。
@ExceptionHandler指定攔截器只攔截哪些錯(cuò)誤異常類
package com.example.demo.controller;
import com.example.demo.utils.Result;
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.net.ConnectException;
import java.sql.SQLIntegrityConstraintViolationException;
import java.sql.SQLSyntaxErrorException;
/**
* @ControllerAdvice指定攔截那些類型的控制器
* annotations指定只對帶有@RestController或@Controller注解的類中的方法進(jìn)行異常處理。
* @ExceptionHandler指定攔截器只攔截哪些錯(cuò)誤異常類
*/
@ControllerAdvice(annotations = {RestController.class, Controller.class})
@ResponseBody
public class GlobalExceptionHandler {
@ExceptionHandler({ConnectException.class, SQLIntegrityConstraintViolationException.class, SQLSyntaxErrorException.class})
public Result exceptionHandler(Exception ex){
System.out.println(111111111);
if(ex.getMessage().contains("Duplicate entry")){
String[] split = ex.getMessage().split(" ");
String msg = split[2] + "已存在";
return Result.error();
}
return Result.error();
}
}