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. 服务器CPU架构演变过程

    第一阶段: 单CPU,没啥好说的.和我们今天打游戏的台式机差不多. 第二阶段: 双CPU 或者 多CPU的SMP架构 或者 AMP架构.参考:http://www.lauterbach.com/smp ...

  2. How to resolve the 403 error when send POST request from Postman

    Root cause: the site refused the connection from the http request origin, by default it is setted as ...

  3. 解析.conf配置文件

    解析.conf配置文件 解析.conf配置文件 解析.conf配置文件

  4. 由浅入深剖析 go channel

    原文:https://www.jianshu.com/p/24ede9e90490 ---------------------------------- 由浅入深剖析 go channel chann ...

  5. JS基本数据类型和引用数据类型区别

    1.栈(stack)和堆(heap) stack为自动分配的内存空间,它由系统自动释放:而heap则是动态分配的内存,大小也不一定会自动释放 2.数据类型 JS分两种数据类型: 基本数据类型:Numb ...

  6. System.Web.HttpRequestValidationException: 从客户端(name="<a href=''>我是晓菜鸟</a>")中检测到有潜在危险的 Request.Form 值

    这是一个比较常见的问题了,如果Web表单中有输入类似于 Html 标签之类的文本,在通过 Request.QueryString 或者 Request.Form 传递这些值的时候,就会触发这样的异常, ...

  7. django 内置标签

    1.autoescape 自动转义开关 官网:https://docs.djangoproject.com/en/2.2/ref/templates/builtins/ 作用:将 html 内容解析成 ...

  8. fadeTo([[speed],opacity,[easing],[fn]])

    fadeTo([[speed],opacity,[easing],[fn]]) 概述 把所有匹配元素的不透明度以渐进方式调整到指定的不透明度,并在动画完成后可选地触发一个回调函数.大理石机械构件维修 ...

  9. 052_获取本机 MAC 地址

    #!/bin/baship a s | awk 'BEGIN{print "本机 MAC 地址信息如下:"}/^[0-9]/{print $2;getline;if($0~/lin ...

  10. [Luogu] U18430 萌萌的大河

    https://www.luogu.org/problemnew/show/U18430 思路比较好想 树链剖分 对于1操作 只需将以该点为根的子树打标记,将所有数存入数组排序 每次进行1操作时,判断 ...