-
异常捕获类(只要我们写代码中用一下异常做抛出, 那么就会被捕获到)
package com.xiaoge.exception; import lombok.extern.slf4j.Slf4j; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.validation.BindingResult; import org.springframework.validation.FieldError; import org.springframework.web.bind.MethodArgumentNotValidException; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.RestControllerAdvice; import javax.security.sasl.AuthenticationException; import java.util.List; @Slf4j @RestControllerAdvice public class GlobalExceptionHandler { @ExceptionHandler(value = RuntimeException.class) public ResponseEntityruntimeExceptionHandler(RuntimeException e) { String message = e.getMessage(); log.error(message); return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("服务器维护中"); } @ExceptionHandler(value = AuthenticationException.class) public ResponseEntity authenticationExceptionHandler(AuthenticationException e) { String message = e.getMessage(); log.error(message); return ResponseEntity.badRequest().body("账号密码错误!"); } @ExceptionHandler(value = IllegalArgumentException.class) public ResponseEntity illegalArgumentExceptionHandler(IllegalArgumentException e) { String message = e.getMessage(); log.error(message); return ResponseEntity.badRequest().body("账号密码错误!"); } @ExceptionHandler({MethodArgumentNotValidException.class}) public ResponseEntity methodArgumentNotValidException(MethodArgumentNotValidException bindException) { BindingResult bindingResult = bindException.getBindingResult(); System.out.println(bindingResult); StringBuilder sb = new StringBuilder("数据校验失败,原因是:"); List fieldErrors = bindingResult.getFieldErrors(); for (FieldError fieldError : fieldErrors) { sb.append("字段:" + fieldError.getField() + "," + fieldError.getDefaultMessage() + "!"); } return ResponseEntity.badRequest().body(sb.toString()); } } -
写一个启动类就行



