您觉得本文档还缺少什么内容?可以自己补充~

  • 定义常用的全局异常处理器
public abstract class AbstractGlobalExceptionHandler {
    @ExceptionHandler(BizException.class)
    @ResponseStatus(HttpStatus.BAD_REQUEST)
    public R<?> bizException(BizException ex) {
        log.warn("BizException:", ex);
        return R.result(ex.getCode(), null, ex.getMessage(), ex.getLocalizedMessage()).setPath(getPath());
    }

    @ResponseStatus(HttpStatus.BAD_REQUEST)
    @ExceptionHandler(ArgumentException.class)
    public R bizException(ArgumentException ex) {
        log.warn("ArgumentException:", ex);
        return R.result(ex.getCode(), null, ex.getMessage(), ex.getLocalizedMessage()).setPath(getPath());
    }
}
  • 在需要的服务 继承AbstractGlobalExceptionHandler
@Configuration
@ConditionalOnClass({Servlet.class, DispatcherServlet.class})
@ConditionalOnWebApplication(type = ConditionalOnWebApplication.Type.SERVLET)
@RestControllerAdvice(annotations = {RestController.class, Controller.class})
@Slf4j
public class ExceptionConfiguration extends AbstractGlobalExceptionHandler {

}
  • 在业务代码中,无需自行try catch 异常, 遇到异常统统抛出来,交给框架全局捕获。 1方面可以解决满屏的try catch导致的代码臃肿, 2方面是防止try了异常后,导致spring事务不生效

results matching ""

    No results matching ""