上一篇:2T架构师学习资料干货分享

作者:xbhog
链接:www.cnblogs.com/xbhog/p/15207278.html

异常处理:

背景:

最近在搭建属于自己的个人博客(码农小白的执念),自己搭建后端的时候首先考虑的是异常处理。

个人也是一边学习一边做,难免有疏漏的地方,希望朋友们在不对的地方提醒下。

技术栈:

  1. springBoot 2.5.3

  2. Mybatis-plus

  3. thymeleaf

  4. mysql

该博客简单记录一下自己的学习过程,如果后面作出简单的demo来,那么会整理其中的细节发布出来。

异常处理

个人粗糙的学习和理解,我把异常错误分为三个,4xx,5xx,error(自定义)

常用的是404和500响应

  • 404 (未找到) 服务器找不到请求的网页

  • 服务器内部错误 服务器遇到错误,无法完成请求

在templates文件下创建404.html、500.html和error.html

如果创建的是4xx.html和5xx.html,那么当页面找不到或者程序内部错误的话,SpringBoot自动匹配到这两个页面,具体的源码在这里就不分析,感兴趣的可以去学习下。

当我想将错误信息返回到我自定义的页面怎么写?

我们自顶向下来思考:

  1. 我们访问页面的时候,页面发生错误也好,找不到也好,是不是都要走它请求的Url,那我们怎么处理这个请求呢?

  2. 这时候我们自然而然的想到拦截器,所以编写ControllerExceptionHandler类,来专门拦截所有的异常请求。

  3. 当我们处理完异常后,把这个流放行,或者返回我们需要的自定义页面上。

这样就实现了我们上述的需求。

所需要的技术点:

  1. @ControllerAdvice

  • 配合 @ExceptionHandler注解结合使用,当异常抛到controller层时,可以对异常进行统一的处理,规定返回的json格式或者跳转到指定的错误页面等.

@ExceptionHandler(Exception.class) // 表示 捕获 全部异常

ModelAndView 其实就是两个作用,一个是指定返回页面,另一个是在返回页面的同时添加属性

通过Logger来打印获取相关的异常信息:

//获取异常的信息
logger.error(() -> {return String.format("Request URL : %s,Exception : %s ", request.getRequestURL(),e);
},e);

在这里自己走了一些弯路,小伙子自己走窄了,导包倒错了

Spring Boot 异常处理,值得学习!相关推荐

  1. spring boot要如何学习?

    spring boot要如何学习? 链接:https://www.zhihu.com/question/53729800/answer/255785661 . 推荐以 Spring Boot 教程与 ...

  2. Spring Boot Log4j2 日志学习

    简介 Java 中比较常用的日志工具类,有: Log4j. SLF4j. Commons-logging(简称jcl). Logback. Log4j2(Log4j 升级版). Jdk Logging ...

  3. Spring Boot异常处理

    一.默认映射 我们在做Web应用的时候,请求处理过程中发生错误是非常常见的情况.Spring Boot提供了一个默认的映射:/error,当处理中抛出异常之后,会转到该请求中处理,并且该请求有一个全局 ...

  4. Spring Boot+Vue项目学习总结

    介绍 最近要做一个网站项目,前后端都用什么开发好呢?什么火就用什么呗,后端Spring Boot火,就用Spring Boot:而前端Vue.js很好的实现了前后端分离,多么高大上,就用Vue了.可问 ...

  5. spring boot增强性学习记录

    spring boot增强性说明 spring boot热重启 安装devtools <dependency><groupId>org.springframework.boot ...

  6. spring boot 异常处理

    spring boot在异常的处理中,默认实现了一个EmbeddedServletContainerCustomizer并定义了一个错误页面到"/error"中,在ErrorMvc ...

  7. 2.7、Spring Boot 异常处理体系

    本Spring Boot版本是2.2.2 1.流程 1.1. 初始化流程 在run 方法中,将所有的方法都放在了try块中,而在catch 块中处理所有的异常和错误(Throwable ) (1) 创 ...

  8. 【Spring Boot 2.0学习之旅-15】SpringBoot2.0响应式编程

    SpringBoot2.0响应式编程 一.SpringBoot2.0 响应式编程基础知识 Spring WebFlux官方文档 SpringBoot WebFlux文档 1.什么是Spring Web ...

  9. Spring Boot 2 精髓学习笔记(五)---Beetl 模板引擎(1)

    本节介绍MVC 中的视图技术之模板引擎Beetl ,用于渲染模板. 一.Beetl模板引擎 Beetl是2010 年开发井维护至今的一个模板引擎,具有如下特点: 功能完备.作为主流模板引擎,适用于各种 ...

  10. spring boot 2.1学习笔记【异常】lombok.javac.apt.LombokProcessor could not be initialized

    springboot系列学习笔记全部文章请移步值博主专栏**: spring boot 2.X/spring cloud Greenwich. 由于是一系列文章,所以后面的文章可能会使用到前面文章的项 ...

最新文章

  1. 日语输入法 android8.0,讯飞输入法发布 AndroidV8.0.6855 专注提升输入效率
  2. pythonqueue线程_python之线程queue
  3. twitter数据集_推特宠物数据整理及分析
  4. 深度学习中常说的向量和表示
  5. ZooKeeper集群部署方式
  6. oracle对象不在回收站中,Oracle PURGE子句清除回收站中的对象
  7. 斐讯N1刷无线打印服务器,斐讯N1刷armbian制作cups打印服务器支持airprint不使用foo2zjs|hp1020...
  8. 教你怎么买美区苹果id
  9. 什么是存储过程?用什么来调用?
  10. 视频转mp3格式转换器怎么使用
  11. Calamari 安装
  12. apns 苹果服务器压力,[iOS]APNs推送机制
  13. 锁相环(PLL)的工作原理
  14. Access:collating sort order SortOrder[2052(0)]
  15. 存储器PCB布线技巧
  16. 王道数据结构p41——22
  17. 可扩展区块链的墨客实践——硅谷陈小虎
  18. 复利计算机软件,复利计算器5.0加强版
  19. Niushop 商品海报
  20. 入职Salesforce乙方公司前, 需要了解什么?

热门文章

  1. iOS UIScrollView 动画的力学原理
  2. 如何在FL Studio中对整首歌曲音量进行调整
  3. Serverless Computing:现状与基础知识
  4. 【对讲机的那点事】维修对讲机你会拆卸电路板上的集成电路块吗?
  5. 23.6. Functions
  6. 技术支持诈骗手段翻新:借勒索软件类锁屏界面恐吓用户
  7. Scala笔记2——IDE配置、函数式编程核心概念
  8. MongoDB 3.2+ 安全授权登录访问控制
  9. JS图表工具 ---- Highcharts
  10. 转载 - LINUX下查看CPU使用率的命令