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