3 changed files with 66 additions and 10 deletions
@ -0,0 +1,61 @@ |
|||
package com.win.mq.handler; |
|||
|
|||
import com.win.mq.common.CommonResult; |
|||
import com.win.mq.exception.ServiceException; |
|||
import lombok.extern.slf4j.Slf4j; |
|||
import org.springframework.web.bind.annotation.ExceptionHandler; |
|||
import org.springframework.web.bind.annotation.RestControllerAdvice; |
|||
|
|||
import static com.win.mq.exception.GlobalErrorCodeConstants.INTERFACE_ERROR; |
|||
import static com.win.mq.exception.GlobalErrorCodeConstants.INTERNAL_SERVER_ERROR; |
|||
|
|||
/** |
|||
* 全局异常处理器,将 Exception 翻译成 CommonResult + 对应的异常编号 |
|||
* |
|||
* @author 闻荫源码 |
|||
*/ |
|||
@Slf4j |
|||
@RestControllerAdvice |
|||
public class GlobalExceptionHandler { |
|||
|
|||
/** |
|||
* 接口未找到业务异常 NoSuchMethodException |
|||
*/ |
|||
@ExceptionHandler(NoSuchMethodException.class) |
|||
public CommonResult<?> noSuchMethodExceptionHandler(NoSuchMethodException e) { |
|||
log.error("[serviceExceptionHandler]", e); |
|||
return CommonResult.error(INTERFACE_ERROR.getCode(), INTERFACE_ERROR.getMsg()); |
|||
} |
|||
|
|||
/** |
|||
* 处理业务异常 ServiceException |
|||
* |
|||
* 例如说,商品库存不足,用户手机号已存在。 |
|||
*/ |
|||
@ExceptionHandler(ServiceException.class) |
|||
public CommonResult<?> serviceExceptionHandler(ServiceException e) { |
|||
log.error("[serviceExceptionHandler]", e); |
|||
return CommonResult.error(INTERNAL_SERVER_ERROR.getCode(), INTERNAL_SERVER_ERROR.getMsg()); |
|||
} |
|||
|
|||
/** |
|||
* 处理业务异常 ServiceException |
|||
* |
|||
* 例如说,商品库存不足,用户手机号已存在。 |
|||
*/ |
|||
@ExceptionHandler(RuntimeException.class) |
|||
public CommonResult<?> runtimeExceptionHandler(ServiceException e) { |
|||
log.error("[runtimeExceptionHandler]", e); |
|||
return CommonResult.error(INTERNAL_SERVER_ERROR.getCode(), INTERNAL_SERVER_ERROR.getMsg()); |
|||
} |
|||
|
|||
/** |
|||
* 处理系统异常,兜底处理所有的一切 |
|||
*/ |
|||
@ExceptionHandler(Exception.class) |
|||
public CommonResult<?> defaultExceptionHandler(Throwable e) { |
|||
log.error("[defaultExceptionHandler]", e); |
|||
return CommonResult.error(INTERNAL_SERVER_ERROR.getCode(), INTERNAL_SERVER_ERROR.getMsg()); |
|||
} |
|||
|
|||
} |
Loading…
Reference in new issue