package pwc.taxtech.atms.common.exception; import com.alibaba.fastjson.JSON; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.web.bind.annotation.ControllerAdvice; import org.springframework.web.bind.annotation.ExceptionHandler; import pwc.taxtech.atms.common.ServiceException; import pwc.taxtech.atms.dto.ApiResultDto; import javax.servlet.http.HttpServletResponse; import java.io.IOException; @ControllerAdvice public class CustomExceptionHandler { private static final Logger logger = LoggerFactory.getLogger(CustomExceptionHandler.class); @ExceptionHandler(value = Throwable.class) public ApiResultDto handle(HttpServletResponse response) { return ApiResultDto.fail("error."); } @ExceptionHandler(value = ServiceException.class) public void customHandle(ServiceException exception, HttpServletResponse response) { try { response.setCharacterEncoding("UTF-8"); response.setContentType("application/json; charset=UTF-8"); response.getWriter().write(JSON.toJSONString(ApiResultDto.fail(exception.getMessage()))); } catch (IOException e) { logger.error("customHandle error.", e); } } }