当前位置: 首页 > news >正文

电子商务网站开发课程简介网页制作一般多少钱

电子商务网站开发课程简介,网页制作一般多少钱,手机管家一键优化,郑州网络营销策划文章目录 背景分析使用ControllerAdvice(RestControllerAdvice)ExceptionHandler实现全局异常全局异常处理-多个处理器匹配顺序存在一个类中存在不同的类中 对于过滤器和拦截器中的异常,有两种思路可以考虑 背景 在项目中我们有需求做一个全…

文章目录

  • 背景
  • 分析
    • 使用@ControllerAdvice(@RestControllerAdvice)+@ExceptionHandler实现全局异常
    • 全局异常处理-多个处理器匹配顺序
      • 存在一个类中
      • 存在不同的类中
  • 对于过滤器和拦截器中的异常,有两种思路可以考虑

背景

在项目中我们有需求做一个全局异常处理,来规范所有出去的异常信息。

参考:官方文档

分析

首先 ControllerAdvice(RestControllerAdvice ) ,ControllerAdvice 是无法处理过滤器和拦截器中的异常的。

引用一张图

加粗样式

下面介绍controller层的全局异常设置

全局异常处理也有多种方式

使用@ControllerAdvice(@RestControllerAdvice)+@ExceptionHandler实现全局异常

import lombok.extern.slf4j.Slf4j;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;@Slf4j
@ControllerAdvice
public class GlobalExceptionHandler {/*** 处理参数错误的异常* @param e* @return*/@ResponseBody@ExceptionHandler(value = IllegalParamsException.class)public ResultVO<Object> handleIllegalParamsException(IllegalParamsException e) {ResultVO<Object> resultVo = new ResultVO<>();resultVo.setStatus(HttpStatus.BAD_REQUEST.value());resultVo.setErrorCode(e.getErrorInfo().getErrorCode());resultVo.setErrorMsg(e.getErrorInfo().getErrorDesc());return resultVo;}@ResponseBody@ExceptionHandler(value = Exception.class)public ResultVO<Object> handleException(Exception e) {ResultVO<Object> resultVo = new ResultVO<>();resultVo.setStatus(HttpStatus.INTERNAL_SERVER_ERROR.value());resultVo.setErrorMsg(e.getMessage());return resultVo;}
}
@Data
@AllArgsConstructor
@NoArgsConstructor
public class ResultVO<T> {private Integer status;private String errorCode;private String errorMsg;private T data;public ResultVO(Integer status, String errorCode, String errorMsg) {this.status = status;this.errorCode = errorCode;this.errorMsg = errorMsg;}
}
public class IllegalParamsException extends RuntimeException {private static final long serialVersionUID = -6298406656682893468L;private OperationErrorEnum errorInfo;public IllegalParamsException(OperationErrorEnum errorInfo) {this.errorInfo = errorInfo;}public IllegalParamsException(String message, OperationErrorEnum errorInfo) {super(message);this.errorInfo = errorInfo;}public IllegalParamsException(String message, Throwable cause, OperationErrorEnum errorInfo) {super(message, cause);this.errorInfo = errorInfo;}public IllegalParamsException(Throwable cause, OperationErrorEnum errorInfo) {super(cause);this.errorInfo = errorInfo;}public IllegalParamsException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace, OperationErrorEnum errorInfo) {super(message, cause, enableSuppression, writableStackTrace);this.errorInfo = errorInfo;}public OperationErrorEnum getErrorInfo() {return errorInfo;}
}

全局异常处理-多个处理器匹配顺序

参考:参考

多个处理器的两种情况:

存在一个类中

子类异常处理器优先

存在不同的类中

与多个异常处理类放入LinkedHashMap的顺序有关,
可以利用Order指定顺序,如果没有,则默认最小顺序;

那么,如果都没有指定顺序的话,那就是list中的顺序

对于过滤器和拦截器中的异常,有两种思路可以考虑

1、catch后通过转发到异常页面(设置ModelAndView)
参考:参考

2、拦截器中发生异常,拦截器中直接返回错误(通过response.getOutputStream().write() 直接写错误信息)
如:

     @Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {try {// 业务代码} catch (Exception e) {response.setContentType(MediaType.APPLICATION_JSON_UTF8_VALUE);ResultVO<Object> resultVo = new ResultVO<>();resultVo.setStatus(HttpStatus.UNAUTHORIZED.value());resultVo.setErrorMsg(ACCESS_PARAM_ERROR.getErrorDesc());response.getOutputStream().write(new String(JSON.toJSONString(resultVo)).getBytes(StandardCharsets.UTF_8));logger.error("==== WhiteListAndAuthenticationInterceptor拦截器拦截到了方法:{} 解析鉴权参数异常  ====", methodName);return false;}}
http://www.yayakq.cn/news/371234/

相关文章:

  • 网站需要写哪些内容上海松江网站设计公司
  • 做网站用什么电脑好检测软件定制
  • 成都建站漳浦网站设计
  • 需要建设网站的安装wordpress it works
  • 防腐木用什么名字做网站大气红色网站
  • 哪些网站做品牌折扣的江西南昌小程序开发
  • 产品素材网站网页设计图片居中怎么设置
  • 网站建设报价单 文库给网站做优化怎么做
  • 定制网站与模板网站的主要区别怎样做网站静态
  • 济南 网站优化品牌型网站案例
  • 石家庄建设项目公示网seo是东莞企业网站排seo
  • c 是用来做网站的吗长沙营销网站建站公司
  • 个人网站首页界面网络营销策划书的范文
  • 网站可以做动画轮播吗鄞州区建设网站
  • 网站后台编辑框不显示耒阳市建设局网站
  • 自己设计手机的网站做网站及APP
  • python整合网站开发技术常平做网站公司
  • uehtml 网站源码金融企业类网站模板免费下载
  • 有免费做海报的网站吗wordpress 一键置顶
  • 网站经营性质企业营销型网站的内容
  • 什么摄像头做直播网站建网站建设
  • 网站开发定制方案云南百度建站
  • 自学网站建设工资百度官方app免费下载
  • iis7站长工具东莞推广公司
  • 学做网站教学百度网盘北京网络科技有限公司官网
  • wordpress客户端建站国内简约网站设计欣赏
  • 江西省城乡和住房建设厅网站网站建设iis配置
  • 网站群建设招标wordpress 文章图片自动添加图片
  • 深圳做网站哪里好v5shop微分销系统
  • 网站后台更新前台更新不易动力建设网站怎么样