package com.poyee.controller.base; import com.poyee.dto.ResultDTO; import com.poyee.exception.OrderException; import com.poyee.exception.ServiceException; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.MethodArgumentNotValidException; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.RestControllerAdvice; import java.sql.SQLException; import java.util.Locale; /** * @author po'yi */ @RestControllerAdvice @Slf4j public class ExceptionController extends BaseController{ @ExceptionHandler(ServiceException.class) public ResultDTO handleException(ServiceException e, Locale locale) { log.info("业务异常:{}", e.getMessage()); return failureResult(e.getCode(),e.getMessage(),null); } @ExceptionHandler(OrderException.class) public ResultDTO handleException(OrderException e, Locale locale) { log.warn("订单异常:{}", e.getMessage()); return failureResult(e.getCode(),e.getMessage(),null); } @ExceptionHandler(Exception.class) public ResultDTO handleException(Exception e, Locale locale) { log.error("系统异常:{}", e); return failureResult(500,"系统异常"); } @ExceptionHandler(SQLException.class) public ResultDTO handleException(SQLException e, Locale locale) { log.error("sql异常:{}", e); return failureResult(500,"sql异常,请联系管理员!"); } @ExceptionHandler(MethodArgumentNotValidException.class) public ResultDTO handleMethodArgumentNotValidException(MethodArgumentNotValidException e, Locale locale) { String defaultMessage = e.getBindingResult().getAllErrors().get(0).getDefaultMessage(); return failureResult(500,"参数错误:"+defaultMessage); } }