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

登录功能网站怎么做的asp mysql做网站

登录功能网站怎么做的,asp mysql做网站,asp绿色简洁通用型企业网站源码,建设一个网站需要做哪些工作内容项目中的异常处理 规范异常类型 在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.ihoyoo.com/news/70708.html

相关文章:

  • 广州建站商城ide wordpress
  • 中介做网站的别打电话为网站吸引流量的方法
  • 商洛网站开发公司登录网站显示系统维护怎么做
  • ip138查询网站网址域名ip自己买空间让网络公司做网站好吗
  • 网站建设的基本流程和技术规范邯郸网站设计招聘
  • 下列关于网站开发中网站上传做网站的的步骤怎么写
  • 企业网站建设递进发展趋势宁波公司网站开发
  • 深圳专业网站建设企网页设计与制作课程内容
  • 西安建站网站怎么知道网站有没有备案
  • 很简单的做设计的网站企业免费网站建设模板下载
  • 英文网站做翻译接单网站建设时如何调用qq微信
  • 做网站还要什么认证吗中国重庆网站建设
  • 网站title 在哪里设置网站建设主要问题
  • asp漂亮的个人网站模板wordpress极简模版
  • 郑州区块链数字钱包网站开发公司网站开发基本过程
  • 优化网站关键词的技巧哪里有免费的网站模板下载软件
  • 来宾住房与城乡建设网站wordpress 按点击调用热门文章
  • 怎么使自己做的网站有音乐免费做ppt的网站有哪些
  • 佛山市新城开发建设有限公司网站一个公司网站开发多少钱
  • 加盟培训网站建设推广是做什么工作的
  • 树形结构网站案例网站的建设价格
  • 柳州网站建设33网站备案好后
  • 手机网站视频播放模板网络设计是不是艺术类
  • 用wordpress做购物网站谷歌浏览器app下载安装
  • 263网站建设wordpress 培训主题
  • 用flex做的网站一般的企业网站开发价格
  • 温州网站设计制作店面设计师哪里找
  • 中国建设银行官方网站纪念钞预约qq自动发货平台网站怎么做
  • 视频网站建设价位少女のトゲ在线观看
  • 搭建公司介绍网站关于手机的软文营销