RestControllerAdvice注解全局捕获自定义异常

前提:抛出的异常返回信息不友好,编码固定500,项目需要自定义返回编码;

需求:返回自定义的编码与抛出的异常信息;

解决:可以通过全局异常捕获,处理返回的报文信息;

测试代码片段:

RestControllerAdvice注解全局捕获自定义异常

处理前返回报文,并没有取得设置的编码:

RestControllerAdvice注解全局捕获自定义异常

处理后返回自定义的编码类型,前端可以根据异常类型进行对应的需求处理:

RestControllerAdvice注解全局捕获自定义异常

如何处理:

@RestControllerAdvice 注解加到全局异常捕获的类,可以用于定义@ExceptionHandler 并应用到所有@RequestMapping中

RestControllerAdvice注解全局捕获自定义异常

@ExceptionHandler 拦截了异常,通过该注解实现自定义异常处理。

其中,@ExceptionHandler 配置的 value 指定需要拦截的异常类型,上面拦截了 DemoModeException.class 这种异常。

在方法中可以根据项目的报文格式进行返回处理。