ResultCode有很多的实现类


cmsCode有很多类型的错误异常

pgeService内当CmsPage这个对象为空的时候,异常类型就可以抛出CmsCode里面的错误代码


if(cmsPage1==null){
//throw new CustomException(CommonCode.FAIL);
ExceptionCast.cast(CmsCode.CMS_ADDPAGE_EXISTSNAME);
}
 

测试

测试添加,重复添加会报错。、
在这里加个断点

走到这里再继续往下走,就应该进入到捕获类了。


再继续往下走,。但是我们没有捕获类。所以这里就报500错误了。报了一个服务端错误。

刚才的这些类都是common工程下创建的

这里加的注解。被spring扫描到了吗

我们的spring boot的启动类并没有扫描common的包

所以springBoot的启动类 我们需要加上扫描common的包

@ComponentScan(basePackages={"com.xuecheng.framework"})//扫描common包下的类

重新启动spring boot项目。再次测试

代码放行

将来的信息想转换成json。所以在捕获类上面我们需要用一个注解。所以加上@ReponseBody

重新启动,再来测试。走到断点,。代码放行,swagger输出下面错误信息。拿到信息就可以在页面上给用户提示了

前端代码的修改

如果返回的json数据里面有message信息。那么就提示这个具体的错误信息

移交一个已经存在的数据

以上就是针对可预知的异常处理的流程。

总结

common的统一捕获类

捕获异常,取出错误代码。封装成ReponseResult, @ReponseBody 转成json 输出给前端。

这里记得 正式的用的时候 要改成 不等于null去判断页面已经存在了


最终代码

@ControllerAdvice
public class ExceptionCatch {
private static final Logger LOGGER= LoggerFactory.getLogger(ExceptionCatch.class);
//捕获CustomException此类异常
@ExceptionHandler(CustomException.class)
@ResponseBody
public ResponseResult customException(CustomException customException){
//获取异常信息,日志记录异常
LOGGER.error("catch exception:{}",customException.getMessage());
ResultCode resultCode=customException.getResultCode();
return new ResponseResult(resultCode);
}
}

阶段5 3.微服务项目【学成在线】_day03 CMS页面管理开发_17-异常处理-可预知异常处理-异常处理测试的更多相关文章

  1. 微服务项目开发学成在线_day03 CMS页面管理开发

    springboot引入mangodb依赖坐标:在spring-boot集成条件下,使用mongodb的DAO层开发. swagger查看接口文档,请求地址:http://localhost:3100 ...

  2. 阶段5 3.微服务项目【学成在线】_day04 页面静态化_20-页面静态化-静态化测试-填写页面DataUrl

    启动前端和后端.轮播图的数据url可以在这里修改. 找到列表页面的轮播图,然后点击编辑 随便更新一个地址测试 提交后数据再次编辑 发现url没有变化 在pageService里面update方法把更新 ...

  3. 阶段5 3.微服务项目【学成在线】_day04 页面静态化_22-页面静态化-静态化测试-静态化程序测试

    测试service内些的静态化的方法 先新建一个测试类 模板的id 放到下拉的静态数据里面 这样这条数据 就是用用的轮播图005这个模板 把这条数据静态化 进入到断点里面.先获取数据模型 获取模板时 ...

  4. 阶段5 3.微服务项目【学成在线】_day04 页面静态化_21-页面静态化-静态化测试-静态化程序编写

    public String getPageHtml(String pageId){ /** * 静态化程序获取页面的DataUrl * * 静态化程序远程请求DataUrl获取数据模型 * * 静态化 ...

  5. 阶段5 3.微服务项目【学成在线】_day04 页面静态化_24-页面预览-页面预览测试

    通过nginx转发到预览的地址 重启nginx 添加页面预览按钮 调整下列表的列的宽度

  6. 阶段5 3.微服务项目【学成在线】_day04 页面静态化_23-页面预览-页面预览开发

    1.用户进入cms前端,点击“页面预览”在浏览器请求cms页面预览链接. 2.cms根据页面id查询DataUrl并远程请求DataUrl获取数据模型. 3.cms根据页面id查询页面模板内容 4.c ...

  7. 阶段5 3.微服务项目【学成在线】_day04 页面静态化_16-页面静态化-模板管理-模板制作

    这是轮播图的原始文件 运行门户需要把 nginx启动起来 单独运行轮播图.把里面的css的引用都加上网址的url 这就是单独访问到的轮播图的效果 轮播图模板的地址: 阶段5 3.微服务项目[学成在线] ...

  8. 阶段5 3.微服务项目【学成在线】_day02 CMS前端开发_16-CMS前端工程创建-导入系统管理前端工程

    提供了基于脚手架封装好的前端工程 H:\BaiDu\黑马传智JavaEE57期 2019最新基础+就业+在职加薪\阶段5 3.微服务项目[学成在线]·\day02 CMS前端开发\资料\xc-ui-p ...

  9. 阶段5 3.微服务项目【学成在线】_day16 Spring Security Oauth2_03-用户认证技术方案-Oauth2协议

    2.2 Oauth2认证 2.2.1 Oauth2认证流程 第三方认证技术方案最主要是解决认证协议的通用标准 问题,因为要实现 跨系统认证,各系统之间要遵循一定的 接口协议. OAUTH协议为用户资源 ...

  10. 阶段5 3.微服务项目【学成在线】_day16 Spring Security Oauth2_01-用户认证需求分析

    1.1 用户认证与授权 截至目前,项目已经完成了在线学习功能,用户通过在线学习页面点播视频进行学习.如何去记录学生的学习过程 呢?要想掌握学生的学习情况就需要知道用户的身份信息,记录哪个用户在什么时间 ...

随机推荐

  1. Linux行编辑器——ed

    实验文件test.txt内容 root:x:::root:/root:/bin/bash bin:x:::bin:/bin:/sbin/nologin daemon:x:::daemon:/sbin: ...

  2. 关于HA(双机冗余接口)

    HA是双机接口,即说明这款防火墙支持双机冗余并行运行模式,可以用同型号的两台机器同时接上联和下联线路,并用线路将两台机器的HA口连接起来,达到协同工作,并行运行的功能. 高可用性H.A.(High A ...

  3. 1.Hbase简介

    1. Hbase简介 1.1. 什么是hbase(面向列) HBASE是一个高可靠性.高性能.面向列.可伸缩的分布式存储系统,利用HBASE技术可在廉价PC Server上搭建起大规模 结构化存储集群 ...

  4. mysql总复习

    目录 数据库操作 库操作 表操作 数据行操作 表关系操作 单表操作 外键创建 多表联查 pymysql模块 索引 主键索引 唯一索引 普通索引 数据库操作 库操作 create database 库名 ...

  5. IP协议首部结构介绍

    当提交给数据链路层进行传送时,一个 I P分片或一个很小的无需分片的 I P数据报称为分组.数据链路层在分组前面加上它自己的首部,并发送得到的帧.I P只考虑它自己加上的 I P首部,对报文本身既不检 ...

  6. duilib学习领悟(3)

    世上本无窗口,窗口只是人的眼睛和电脑屏幕及鼠标键盘相互操作后的视觉效果! 下面我们来看看我们之前讲过的代码: class CDuiFrameWnd : public CWindowWnd, publi ...

  7. 表单文本字段预期描述(placeholder="请输入产品名称"以及prompt:'输入价格')

    普通html文本标签设置: <input id="xxx" placeholder="请输入产品名称"/> 带有jQueryEasyUI插件的htm ...

  8. pandas处理json脱坑(一)--JsonError: Expecting property name enclosed in double quotes

    python执行json.loads(…)时遇到的错误json格式的文本中应该用双引号,而不是单引号,如: brief=json.loads(row["brief"].replac ...

  9. 发现sqlite

    1.前言 本文使用"发现"二字,是表示我作为一个用过mysql oracle hive以及各种nosql数据库的男人,竟然发现有一个如此常识的数据库我竟然不知道. 在配置airfl ...

  10. mysql 数据库练习题

    前面学习了MySQL的语句的基本用法,这里就开始做一些MySQL练习,这套题目一共45题,属于比较简单的,初学先试着做这个. 参考链接:https://www.cnblogs.com/SJP666/p ...