通过@RestControllerAdvice注解,我们可以在一个地方集中处理所有异常,而不是在每个Controller中重复写try-catch块。 @ResponseBody@RestControllerAdvicepublicclassExceptionHandlerAdvice{protectedLogger logger = LoggerFactory.getLogger(getClass()); @ExceptionHandler...
@ExceptionHandler(value = NullPointerException.class) @ResponseBody public Map processUnauthenticatedNullPointerException(NativeWebRequest request, NullPointerException e) { System.out.println("===应用到所有@RequestMapping注解的方法,在其抛出NullPointerException异常时执行"); Map map = new HashMap(5); ma...
public class ExceptionHandlerAdvice { protected Logger logger = LoggerFactory.getLogger(getClass()); @ExceptionHandler(MethodArgumentNotValidException.class) public CommonResult<Object> handleValidationExceptions(MethodArgumentNotValidException ex) { logger.error("[handleValidationExceptions]", ex); StringBuild...
@ControllerAdvice(basePackages = "com.example.demolearn.com.feizhou.business.business.controller") @ResponseBody @Slf4j public class ExceptionHandlerAdvice { /** * 处理未捕获的Exception * * @param e 异常 * @return 统一响应体 */ @ExceptionHandler(Exception.class) public Result handleException(Excep...
如果我们需要定义全局的@InitBinder或者@ExceptionHandler,那我们就不应该在Controller中定义这些方法。 Spring提供了@ControllerAdvice用于添加全局配置: // Target all Controllers annotated with @RestController@ControllerAdvice(annotations = RestController.class)publicclassExampleAdvice1{}// Target all Controllers within ...
//统一拦截异常@RestControllerAdvice(basePackages = "com.example.demo")publicclassExceptionAdvice{/** * 捕获 {@codeBusinessException} 异常 */@ExceptionHandler({BusinessException.class})publicResult<?> handleBusinessException(BusinessException ex) {returnResult.failed(ex.getMessage()); ...
如果我们需要定义全局的@InitBinder或者@ExceptionHandler,那我们就不应该在Controller中定义这些方法。 Spring提供了@ControllerAdvice用于添加全局配置: // Target all Controllers annotated with @RestController @ControllerAdvice(annotations = RestController.class) public class ExampleAdvice1 {} // Target all Controllers...
public BusinessException(String message) { super(message); } } //统一拦截异常 @RestControllerAdvice(basePackages = "com.example.demo") public class ExceptionAdvice { /** * 捕获 {@code BusinessException} 异常 */ @ExceptionHandler({BusinessException.class}) ...
// 如果引入了swagger或knife4j的文档生成组件,这里需要仅扫描自己项目的包,否则文档无法正常生成@RestControllerAdvice(basePackages="com.example.demo")publicclassResponseAdviceimplementsResponseBodyAdvice<Object>{@Overridepublicbooleansupports(MethodParameter returnType,Class<?extendsHttpMessageConverter<?>>converterType...
@RestControllerAdvice(basePackages ="com.example.demo") publicclassResponseAdviceimplementsResponseBodyAdvice<Object>{ @Override publicbooleansupports(MethodParameter returnType, Class<? extends HttpMessageConverter<?>> converterType){ // 如果不需要进行封装的,可...