From dd2554435b9ced61e2a6a06627145fca3bf2685b Mon Sep 17 00:00:00 2001 From: Fixiaobai <fixiaobai@163.com> Date: 星期一, 04 九月 2023 17:17:17 +0800 Subject: [PATCH] 修改bug --- framework/src/main/java/com/yuanchu/limslaboratory/handler/GlobalExceptionHandler.java | 64 ++++++++++++++++++++++++++++++++ 1 files changed, 64 insertions(+), 0 deletions(-) diff --git a/framework/src/main/java/com/yuanchu/limslaboratory/handler/GlobalExceptionHandler.java b/framework/src/main/java/com/yuanchu/limslaboratory/handler/GlobalExceptionHandler.java index 0dd0dfd..ce92794 100644 --- a/framework/src/main/java/com/yuanchu/limslaboratory/handler/GlobalExceptionHandler.java +++ b/framework/src/main/java/com/yuanchu/limslaboratory/handler/GlobalExceptionHandler.java @@ -1,25 +1,49 @@ package com.yuanchu.limslaboratory.handler; +import com.yuanchu.limslaboratory.exception.AuthException; +import com.yuanchu.limslaboratory.exception.MyFileException; +import com.yuanchu.limslaboratory.utils.MyUtil; import com.yuanchu.limslaboratory.vo.Result; import lombok.extern.slf4j.Slf4j; +import org.apache.tomcat.util.http.fileupload.impl.FileSizeLimitExceededException; +import org.apache.tomcat.util.http.fileupload.impl.SizeLimitExceededException; import org.springframework.beans.ConversionNotSupportedException; import org.springframework.beans.TypeMismatchException; import org.springframework.beans.factory.NoSuchBeanDefinitionException; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.dao.DataAccessException; +import org.springframework.dao.DataIntegrityViolationException; import org.springframework.dao.DuplicateKeyException; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; import org.springframework.http.converter.HttpMessageNotReadableException; import org.springframework.http.converter.HttpMessageNotWritableException; import org.springframework.jdbc.BadSqlGrammarException; +import org.springframework.validation.ObjectError; +import org.springframework.web.bind.MethodArgumentNotValidException; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.RestControllerAdvice; +import org.springframework.web.multipart.MultipartException; import java.io.FileNotFoundException; import java.io.IOException; +import java.net.BindException; import java.sql.SQLException; +import java.sql.SQLIntegrityConstraintViolationException; +import java.util.List; +import java.util.stream.Collectors; @Slf4j @RestControllerAdvice public class GlobalExceptionHandler { + + @Value("${spring.servlet.multipart.max-file-size}") + private String maxFileSize; + + @Value("${spring.servlet.multipart.max-request-size}") + private String maxRequestSize; + @ExceptionHandler(SQLException.class) public Result<?> handlerSQLException(SQLException e) { @@ -155,10 +179,50 @@ return Result.fail("闄ゆ暟涓嶈兘涓�0寮傚父"); } + /** + *鏂囦欢杩囧ぇ鎶ラ敊鎻愮ず + */ + @ExceptionHandler({MultipartException.class}) + public Result<?> fileUploadExceptionHandler(MultipartException e) { + String msg; + Throwable rootCause = e.getRootCause(); + if (rootCause instanceof FileSizeLimitExceededException) { + msg="涓婁紶鏂囦欢杩囧ぇ銆愬崟涓枃浠跺ぇ灏忎笉寰楄秴杩�" + maxFileSize + "銆�"; + }else if(rootCause instanceof SizeLimitExceededException){ + msg="涓婁紶鏂囦欢杩囧ぇ銆愭�讳笂浼犲ぇ灏忎笉寰楄秴杩�" + maxRequestSize + "銆�"; + }else { + msg="鏂囦欢涓婁紶澶辫触銆愭湇鍔″櫒寮傚父銆�"; + } + return Result.fail(msg); + } + + /** 鏂囦欢鍚庣紑鍚嶄笉閫氳繃杩斿洖鎻愮ず */ + @ExceptionHandler({MyFileException.class}) + public Result<?> myFileException(Exception e) { + return Result.fail("鎶辨瓑涓嶆敮鎸併��" + e.getMessage() +"銆戝悗缂�鐨勬枃浠讹紒"); + } + + /** + * 鍙傛暟妫�楠� + */ + @ExceptionHandler({MethodArgumentNotValidException.class}) + public Result<?> methodArgumentNotValidException(MethodArgumentNotValidException e) { + List<ObjectError> allErrors = e.getBindingResult().getAllErrors(); + String message = allErrors.stream().map(s -> s.getDefaultMessage()).collect(Collectors.joining(";")); + return Result.fail(message); + } + /** 鍏朵粬閿欒 */ @ExceptionHandler({Exception.class}) public Result<?> exception(Exception e) { e.printStackTrace(); return Result.fail("缃戠粶杩炴帴澶辫触锛岃閫�鍑哄悗鍐嶈瘯"); } + + @ExceptionHandler({AuthException.class}) + public Result<?> noAuth(AuthException e){ + return Result.fail(Integer.valueOf(e.getCode()),e.getMsg()); + } + + } -- Gitblit v1.9.3