/** * Copyright (c) 2022 雷掣 All rights reserved. * * https://www.lc_crm.com * * 版权所有,侵权必究! */ package io.renren.exception; import io.renren.common.exception.ErrorCode; import io.renren.common.exception.RenException; import io.renren.common.exception.UnauthorizedException; import io.renren.common.utils.Result; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.dao.DuplicateKeyException; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.RestControllerAdvice; /** * 异常处理器 * * @author Mark sunlightcs@gmail.com * @since 1.0.0 */ @RestControllerAdvice public class RenExceptionHandler { private static final Logger logger = LoggerFactory.getLogger(RenExceptionHandler.class); /** * 处理自定义异常 */ @ExceptionHandler(RenException.class) public Result handleRenException(RenException ex){ Result result = new Result(); result.error(ex.getCode(), ex.getMsg()); return result; } @ExceptionHandler(DuplicateKeyException.class) public Result handleDuplicateKeyException(DuplicateKeyException ex){ Result result = new Result(); return result.error(9999,"数据库中已存在该记录"); } @ExceptionHandler(UnauthorizedException.class) public ResponseEntity handleException(UnauthorizedException e){ logger.error(e.getMessage(), e); return new ResponseEntity(null, HttpStatus.UNAUTHORIZED); } @ExceptionHandler(Exception.class) public Result handleException(Exception ex){ logger.error(ex.getMessage(), ex); return new Result().error(); } }