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

创意网站建设排行榜wordpress插件如何汉化

创意网站建设排行榜,wordpress插件如何汉化,网站上的美工图片要怎么做,上海网站建设企业异常处理 4.6.1 异常问题分析 在service方法中有很多的参数合法性校验#xff0c;当参数不合法则抛出异常#xff0c;下边我们测试下异常处理。 请求创建课程基本信息#xff0c;故意将必填项设置为空。 测试发现报500异常#xff0c;如下#xff1a; http://localho…异常处理 4.6.1 异常问题分析 在service方法中有很多的参数合法性校验当参数不合法则抛出异常下边我们测试下异常处理。 请求创建课程基本信息故意将必填项设置为空。 测试发现报500异常如下 http://localhost:63040/content/courseHTTP/1.1 500 Content-Type: application/json Transfer-Encoding: chunked Date: Wed, 07 Sep 2022 11:40:29 GMT Connection: close{timestamp: 2022-09-07T11:40:29.67700:00,status: 500,error: Internal Server Error,message: ,path: /content/course }问题并没有输出我们抛出异常时指定的异常信息。 所以现在我们的需求是当正常操作时按接口要求返回数据当非正常流程时要获取异常信息进行记录并提示给用户。 异常处理除了输出在日志中还需要提示给用户前端和后端需要作一些约定 1、错误提示信息统一以json格式返回给前端。 2、以HTTP状态码决定当前是否出错非200为操作异常。 如何规范异常信息 代码中统一抛出项目的自定义异常类型这样可以统一去捕获这一类或几类的异常。 规范了异常类型就可以去获取异常信息。 如果捕获了非项目自定义的异常类型统一向用户提示“执行过程异常请重试”的错误信息。 如何捕获异常 代码统一用try/catch方式去捕获代码比较臃肿可以通过SpringMVC提供的控制器增强类统一由一个类去完成异常的捕获。 如下图 4.6.2 统一异常处理实现 根据上边分析的方案统一在base基础工程实现统一异常处理各模块依赖了base基础工程都 可以使用。 首先在base基础工程添加需要依赖的包 dependencygroupIdorg.springframework/groupIdartifactIdspring-web/artifactId /dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-log4j2/artifactId /dependency1、定义一些通用的异常信息 package com.xuecheng.base.execption;/*** description 通用错误信息* author Mr.M* date 2022/9/6 11:29* version 1.0*/ public enum CommonError {UNKOWN_ERROR(执行过程异常请重试。),PARAMS_ERROR(非法参数),OBJECT_NULL(对象为空),QUERY_NULL(查询结果为空),REQUEST_NULL(请求参数为空);private String errMessage;public String getErrMessage() {return errMessage;}private CommonError( String errMessage) {this.errMessage errMessage;}}2、自定义异常类型 package com.xuecheng.base.execption;/*** description 学成在线项目异常类* author Mr.M* date 2022/9/6 11:29* version 1.0*/ public class XueChengPlusException extends RuntimeException {private static final long serialVersionUID 5565760508056698922L;private String errMessage;public XueChengPlusException() {super();}public XueChengPlusException(String errMessage) {super(errMessage);this.errMessage errMessage;}public String getErrMessage() {return errMessage;}public static void cast(CommonError commonError){throw new XueChengPlusException(commonError.getErrMessage());}public static void cast(String errMessage){throw new XueChengPlusException(errMessage);}}3、响应用户的统一类型 package com.xuecheng.base.execption;import java.io.Serializable;/*** 错误响应参数包装*/ public class RestErrorResponse implements Serializable {private String errMessage;public RestErrorResponse(String errMessage){this.errMessage errMessage;}public String getErrMessage() {return errMessage;}public void setErrMessage(String errMessage) {this.errMessage errMessage;} }4、全局异常处理器 从 Spring 3.0 - Spring 3.2 版本之间对 Spring 架构和 SpringMVC 的Controller 的异常捕获提供了相应的异常处理。 ExceptionHandler Spring3.0提供的标识在方法上或类上的注解用来表明方法的处理异常类型。ControllerAdvice Spring3.2提供的新注解从名字上可以看出大体意思是控制器增强 在项目中来增强SpringMVC中的Controller。通常和 ExceptionHandler 结合使用来处理SpringMVC的异常信息。ResponseStatus Spring3.0提供的标识在方法上或类上的注解用状态代码和应返回的原因标记方法或异常类。 调用处理程序方法时状态代码将应用于HTTP响应。 通过上面的两个注解便可实现微服务端全局异常处理具体代码如下 Slf4jControllerAdvice//控制器增强 public class GlobalExceptionHandler {//处理XueChengPlusException异常// 此类异常是程序员主动抛出的可预知异常ResponseBody//将信息返回为 json格式ExceptionHandler(XueChengPlusException.class)//此方法捕获XueChengPlusException异常ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)//状态码返回500public RestErrorResponse doXueChengPlusException(XueChengPlusException e){log.error(捕获异常{},e.getErrMessage());e.printStackTrace();String errMessage e.getErrMessage();//写异常处理的逻辑//....return new RestErrorResponse(errMessage);}//捕获不可预知异常 ExceptionResponseBody//将信息返回为 json格式ExceptionHandler(Exception.class)//此方法捕获Exception异常ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)//状态码返回500public RestErrorResponse doException(Exception e){log.error(捕获异常{},e.getMessage());e.printStackTrace();if(e.getMessage().equals(不允许访问)){return new RestErrorResponse(没有操作此功能的权限);}return new RestErrorResponse(CommonError.UNKOWN_ERROR.getErrMessage());}ResponseBody//将信息返回为 json格式ExceptionHandler(MethodArgumentNotValidException.class)//此方法捕获MethodArgumentNotValidException异常ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)//状态码返回500public RestErrorResponse doMethodArgumentNotValidException(MethodArgumentNotValidException e){BindingResult bindingResult e.getBindingResult();//校验的错误信息ListFieldError fieldErrors bindingResult.getFieldErrors();//收集错误StringBuffer errors new StringBuffer();fieldErrors.forEach(error-{errors.append(error.getDefaultMessage()).append(,);});return new RestErrorResponse(errors.toString());}}4.6.3 异常处理测试 在异常处理测试之前首先在代码中抛出自定义类型的异常这里以新增课程的service方法为例进行代码修改。 Overridepublic CourseBaseInfoDto createCourseBase(Long companyId,AddCourseDto dto) {... //合法性校验if (StringUtils.isBlank(dto.getName())) {throw new XueChengPlusException(课程名称为空);}if (StringUtils.isBlank(dto.getMt())) {throw new XueChengPlusException(课程分类为空);}if (StringUtils.isBlank(dto.getSt())) {throw new XueChengPlusException(课程分类为空);}if (StringUtils.isBlank(dto.getGrade())) {throw new XueChengPlusException(课程等级为空);}if (StringUtils.isBlank(dto.getTeachmode())) {throw new XueChengPlusException(教育模式为空);}if (StringUtils.isBlank(dto.getUsers())) {throw new XueChengPlusException(适应人群);}if (StringUtils.isBlank(dto.getCharge())) {throw new XueChengPlusException(收费规则为空);}。。。if (201001.equals(charge)) {BigDecimal price dto.getPrice();if (ObjectUtils.isEmpty(price)) {throw new XueChengPlusException(收费课程价格不能为空);}courseMarketNew.setPrice(dto.getPrice().floatValue());}。。。1、首先使用httpclient测试 请求新增课程接口故意将必填项设置为空。 测试结果与预期一致可以捕获异常并响应异常信息如下 http://localhost:63040/content/courseHTTP/1.1 500 Content-Type: application/json Transfer-Encoding: chunked Date: Wed, 07 Sep 2022 13:17:14 GMT Connection: close{errMessage: 处理异常请重试。 }2、前后端调试 仍然测试新增课程接口当课程收费的时候必须填写价格这里设置课程为收费价格设置为空。 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-f3RhXU3C-1690971452584)()] 通过测试发现前端正常提示代码 中抛出的异常信息。 至此项目异常处理的测试完毕我们在开发中对于业务分支中错误的情况要抛出项目自定义的异常类型。
http://www.lebaoying.cn/news/47464.html

相关文章:

  • 公司网站备案号中国建设网官方网站下载e路
  • 网站功能模块 分析成都全网营销型网站
  • asp网站建设制作免费的网站域名申请
  • app商城开发网站建设wordpress企业主题带后台
  • 做网站推广利润万网是干什么用的
  • 深圳成交型网站建设公司济南高端网站设计
  • 网站开发使用技术第二版答案wordpress mu 博客群
  • 网站建设是做什么的专注网站建设怎么样
  • 阜阳营销型网站建设新郑网络推广公司
  • 怎么给网站加图标网站icp备案地
  • 老网站改版php企业网站源代码
  • 苏州学校网站建设d代码做网站
  • 建站哪家好就要用兴田德润做网站要求电脑配置
  • 网站升级 html网站制作设计
  • 贵阳汽车网站建设wordpress it模板下载
  • 南宁做网站360网站怎么做ppt
  • 2017年网站建设工作总结网站空间试用
  • 昆山建设局图审中心网站wordpress 精美模板
  • 网站建设怎么赚钱京东当前网站做的营销活动
  • 建设银行招生网站网站没有做适配 怎么办
  • 做百科需要发哪些网站自己制作游戏的软件
  • 高端大气装饰公司网站源码 百度网盘html 图片展示网站
  • 网站制作的基本步骤公司网站包括哪些内容
  • 一佰互联自助建站百度空间登录
  • 做代还的人都聚集在哪些网站wordpress安装腾讯云
  • 国内简洁网站设计潮州vi设计公司
  • 网站 什么语言开发的网络运营培训班多少钱
  • 遂宁商城网站建设报价网站标题的作用
  • 佳木斯 网站建设芜湖seo
  • 考试系统 微网站是什么样的北京电子商务网站建设