39 lines
1.7 KiB
Java
Executable File
39 lines
1.7 KiB
Java
Executable File
package com.jsl.oa.exception;
|
|
|
|
import com.jsl.oa.utils.BaseResponse;
|
|
import com.jsl.oa.utils.ResultUtil;
|
|
import org.jetbrains.annotations.NotNull;
|
|
import org.springframework.http.ResponseEntity;
|
|
import org.springframework.web.HttpRequestMethodNotSupportedException;
|
|
import org.springframework.web.bind.annotation.ControllerAdvice;
|
|
import org.springframework.web.bind.annotation.ExceptionHandler;
|
|
|
|
import java.sql.SQLIntegrityConstraintViolationException;
|
|
import java.util.regex.Pattern;
|
|
|
|
@ControllerAdvice
|
|
public class ProcessException {
|
|
|
|
@ExceptionHandler(value = Exception.class)
|
|
public ResponseEntity<BaseResponse> businessException(@NotNull Exception e) {
|
|
e.printStackTrace();
|
|
return ResultUtil.error("Exception", 500, "服务器异常");
|
|
}
|
|
|
|
@ExceptionHandler(value = HttpRequestMethodNotSupportedException.class)
|
|
public ResponseEntity<BaseResponse> businessMethodNotAllowedException() {
|
|
return ResultUtil.error("MethodNotAllowed", 405, "请求方法错误");
|
|
}
|
|
|
|
@ExceptionHandler(value = SQLIntegrityConstraintViolationException.class)
|
|
public ResponseEntity<BaseResponse> businessSQLIntegrityConstraintViolationException(@NotNull SQLIntegrityConstraintViolationException e) {
|
|
if (Pattern.matches(".*Duplicate entry.*", e.getMessage())) {
|
|
return ResultUtil.error("DuplicateEntry", 400, "数据重复");
|
|
} else if (Pattern.matches(".*Cannot delete or update a parent row: a foreign key constraint fails.*", e.getMessage())) {
|
|
return ResultUtil.error("DataAssociation", 400, "数据存在关联,无法删除");
|
|
} else {
|
|
return ResultUtil.error("DatabaseError", 400, "数据库异常");
|
|
}
|
|
}
|
|
}
|