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

企业的建站方式网站的构建一般要多久

企业的建站方式,网站的构建一般要多久,宿迁人才网,广告公司 网站制作项目中的异常处理 规范异常类型 在Service类的业务方法中有很多的参数合法性校验,当请求参数不合法的时候会抛出异常,但此时异常信息只会在控制台输出,前端界面并不会提示用户 实际开发中前端和后端需要做一些约定: 一般将错误提示信息统一以json格式返回给前端,以HTTP状态码…项目中的异常处理 规范异常类型 在Service类的业务方法中有很多的参数合法性校验,当请求参数不合法的时候会抛出异常,但此时异常信息只会在控制台输出,前端界面并不会提示用户 实际开发中前端和后端需要做一些约定: 一般将错误提示信息统一以json格式返回给前端,以HTTP状态码决定当前请求是否出错(非200为操作异常) {timestamp:2023-02-02T14:42:36.82000:00,// 添加课程时设置一个负数的课程价格会报500异常status:500,error:Internal Server Error,message:,path:/content/course }为了统一处理异常信息,我们需要在业务方法中自定义并规范项目中抛出的异常类型,这样可以便于统一去捕获这一类或几类的异常 对于业务方法中抛出的非项目自定义的异常类型即未知异常,则统一向用户提示指定的错误信息如执行过程异常请重试的 规范了异常类型, 我们还需要去捕获异常信息,使用try/catch方式去捕获代码比较臃肿,可以统一由SpringMVC提供的控制器增强类去完成异常的捕获 异常处理(base工程) 第一步: 添加依赖,在base基础工程实现统一异常处理,由于各模块依赖了base基础工程所以都可以使用异常处理 dependencygroupIdorg.springframework/groupIdartifactIdspring-web/artifactId /dependency dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-log4j2/artifactId /dependency第二步: 定义一个枚举类CommonError,枚举一些通用的异常信息对象 package com.xuecheng.base.execption; /** * description 通用错误信息 */ public enum CommonError {UNKOWN_ERROR(执行过程异常请重试),PARAS_ERROR(非法参数),OBJECT_NULL(对象为空),QUERY_NULL(查询结果为空),REQUEST_NULL(请求参数为空);private String errMessage;public String getErrMessage() {return errMessage;}CommonError(String errMessage) {this.errMessage errMessage;} }第三步: 自定义项目的异常类型XueChengPlusException package com.xuecheng.base.execption; /** * description 学成在线项目异常类 */ public class XueChengPlusException extends RuntimeException {private String errMessage;public String getErrMessage() {return errMessage;}public XueChengPlusException() {super();}public XueChengPlusException(String errMessage) {super(errMessage);this.errMessage errMessage;}public static void cast(CommonError commonError) {throw new XueChengPlusException(commonError.getErrMessage());}public static void cast(String errMessage) {throw new XueChengPlusException(errMessage);} }第四步: 自定义响应异常信息的模型类 package com.xuecheng.base.execption; Data NoArgsConstructor AllArgsConstructor public class RestErrorResponse implements Serializable {private String errMessage; }第五步: 定义全局异常处理器去捕获异常信息同时记录异常日志, 将异常信息封装到异常信息的模型类并响应给用户,实现微服务端全局异常处理 ControllerAdvice或RestControllerAdvice)(类上): 将当前类标识为异常处理的组件ExceptionHandler(方法或类上): 用于表明方法处理的异常类型,可以指定一个或多个ResponseStatus(方法或类上): 标记捕获异常的方法或类指定发生异常时异常处理器向前端响应的状态码和原因 package com.xuecheng.base.execption; /** * description 全局异常处理器 */ Slf4j ControllerAdvice public class GlobalExceptionHandler {ResponseBodyExceptionHandler(XueChengPlusException.class)// 处理项目自定义异常类型ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR) // 该异常枚举对象的错误码为500public RestErrorResponse customException(XueChengPlusException exception) {log.error(系统异常{}, exception.getErrMessage());return new RestErrorResponse(exception.getErrMessage());}ResponseBodyExceptionHandler(Exception.class)// 未知类型的异常ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)// 该异常枚举对象的错误码为500public RestErrorResponse exception(Exception exception) {log.error(系统异常{}, exception.getMessage());return new RestErrorResponse(exception.getMessage());} }异常处理测试(api工程) 第一步: 在内容管理服务的api工程中添加base工程的依赖 dependencygroupIdcom.xuecheng/groupIdartifactIdxuecheng-plus-base/artifactIdversion0.0.1-SNAPSHOT/version /dependency第二步: 当业务方法中出现异常时抛出项目自定义的异常类型,这里以新增课程的业务方法为例进行代码修改 Override public 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(charge.equals(201001)){if(courseMarketNew.getPrice() null || courseMarketNew.getPrice().floatValue()0){throw new XueChengPlusException(课程的价格不能为空并且必须大于0);}} }第三步: 使用HTTP Client进行测试,故意将收费课程价格设置为负数, 查看捕获到的响应信息 POST http://localhost:53040/content/courseHTTP/1.1 500 Content-Type: application/json Transfer-Encoding: chunked Date: Fri, 03 Feb 2023 02:32:20 GMT Connection: close{errMessage: 课程设置了收费价格不能为空且必须大于0 }
http://www.dnsts.com.cn/news/77421.html

相关文章:

  • 三里屯做网站的公司西安自助网站建设系统
  • 燕郊 网站开发做demo的网站
  • 网站建设要哪些人网站开发代码归属
  • 网站开发的优势app制作视频教程
  • 住建城乡建设部网站哈尔滨seo优化排名
  • 免费发布信息网站有哪些专做兼职的网站
  • 番禺网站排名优化公司免费网站模板库
  • wordpress editor石家庄seo优化公司
  • 赤峰建设厅官方网站陇西做网站的广告店
  • 成都建好的网站出租大连网站设计 仟亿科技
  • 杭州家具网站建设方案社旗网站设计
  • 手机 网站 开发丹阳网站建设报价
  • 查询备案网站方法网站目录
  • 设计网站价格wordpress搭建两个主题
  • 广告网站搭建软件下载安装免费
  • 橙色网站设计深圳网站建设hi0755
  • 网站做长尾词好还是单个词好深圳网站维护服务的公司
  • 18末年年禁止观看网站设计配色推荐的网站
  • 网站做301好不好设计绘图软件
  • 有偷菜餐厅城市建设的网站网站上如何放入地图
  • 重庆市住建局官方网站手机建设中网站首页
  • 什么网站吸引流量网络科技公司有什么职位
  • 西部数码网站管理助手使用教程网站被墙什么意思
  • 做网站编辑工作好不好常州网站建设优化
  • 做网站运营需要学什么网站开发技术要学什么软件
  • 万网 速成网站国外做网站用的程序
  • 灵感来源网站网站收录了文章不收录
  • 网站备案用的幕布wordpress登录选项
  • 北流科技网站建设做免费网站
  • 国家高职示范校建设网站做胎压的网站