范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

SpringBoot异常处理,值得学习

  异常处理:背景:
  最近在搭建属于自己的个人博客(码农小白的执念),自己搭建后端的时候首先考虑的是异常处理。
  个人也是一边学习一边做,难免有疏漏的地方,希望朋友们在不对的地方提醒下。
  技术栈: springBoot 2.5.3 Mybatis-plus thymeleaf mysql
  该博客简单记录一下自己的学习过程,如果后面作出简单的demo来,那么会整理其中的细节发布出来。
  推荐一个 Spring Boot 基础教程及实战示例:
  https://github.com/javastacks/spring-boot-best-practice 异常处理
  个人粗糙的学习和理解,我把异常错误分为三个,4xx,5xx,error(自定义)
  常用的是404和500响应 404 (未找到) 服务器找不到请求的网页 服务器内部错误 服务器遇到错误,无法完成请求
  在templates文件下创建404.html、500.html和error.html
  如果创建的是4xx.html和5xx.html,那么当页面找不到或者程序内部错误的话,SpringBoot自动匹配到这两个页面,具体的源码在这里就不分析,感兴趣的可以去学习下。
  "当我想将错误信息返回到我自定义的页面怎么写?
  "
  我们自顶向下来思考: 我们访问页面的时候,页面发生错误也好,找不到也好,是不是都要走它请求的Url,那我们怎么处理这个请求呢? 这时候我们自然而然的想到拦截器,所以编写ControllerExceptionHandler类,来专门拦截所有的异常请求。 当我们处理完异常后,把这个流放行,或者返回我们需要的自定义页面上。
  这样就实现了我们上述的需求。
  所需要的技术点: @ControllerAdvice 配合 @ExceptionHandler注解结合使用,当异常抛到controller层时,可以对异常进行统一的处理,规定返回的json格式或者跳转到指定的错误页面等. @ExceptionHandler(Exception.class) // 表示 捕获 全部异常 ModelAndView 其实就是两个作用,一个是指定返回页面,另一个是在返回页面的同时添加属性
  通过Logger来打印获取相关的异常信息: //获取异常的信息 logger.error(() -> {     return String.format("Request URL : %s,Exception : %s ", request.getRequestURL(),e); },e);
  在这里自己走了一些弯路,小伙子自己走窄了,导包倒错了 。
  这里我导的包是mybatis中的: import org.mybatis.logging.Logger; import org.mybatis.logging.LoggerFactory;
  传参一直不对,只能走源码的路子了,看看自己调用的什么玩意:最后就写成了上述的代码格式。
  我看其他人写的代码的时候才恍然大明白,如下: import org.slf4j.Logger; import org.slf4j.LoggerFactory;  logger.error("Requst URL : {},Exception : {}", request.getRequestURL(),e);
  可能有的朋友感觉没啥,但是我自己调了半个小时才出来,菜是原罪。
  Logger这个只是在控制台输出,或者绑定了日志,会输出到日志中。
  接着上述问题通过ModelAndView类实现:
  "ModelAndView像极了Model。
  " ModelAndView modelAndView = new ModelAndView();  //实例化一个ModelAndView modelAndView.addObject("url",request.getRequestURL());  //获取的url添加到model中 modelAndView.addObject("exception",e);  //获取的异常信息 //返回给error页面 modelAndView.setViewName("error/error"); return modelAndView;
  敲黑板:来新需求了!
  如果我想从所有的异常中剥离出404异常并返回给SpringBoot让他自动处理页面怎么解。
  按照学习的来说。当页面为null的时候,向上抛出一个自定义的异常类,该异常类标注了异常状态。 throw new NotFoundException("博客找不到,请联系管理员"); //自定义类  @ResponseStatus(HttpStatus.NOT_FOUND) public class NotFoundException extends RuntimeException{     public NotFoundException() {         super();     }     public NotFoundException(String message) {         super(message);     } }
  然后我们可以在总的异常中通过 AnnotationUtils.findAnnotation  通过传入 AnnotatedElement  和 注解类型  来查找方法或者类对象上的注解。
  如果满足条件可以抛出异常让SpringBoot接管。 if (AnnotationUtils.findAnnotation(e.getClass(), ResponseStatus.class) != null) {     throw e; } 结束:
  如果你看到这里或者正好对你有所帮助,希望能点个关注或者推荐,感谢!

品仕乐立式吹风机亲测体验吹头发也能成为护发手段说起吹风机,相信现在的人基本都不会陌生,甚至可以说是极其熟悉,毕竟作为日常生活必备小电器之一,吹风机在男孩女孩心中都有着极高的地位。不过,不知道大家有没有发现,传统的吹风机因为需要联想陈劲谈摩托罗拉edge系列配色命名灵感来自唐诗宋词12月18日消息,今日,联想中国区手机业务部总经理陈劲通过微博发文谈到了edge系列配色命名,他表示,大家好像注意到了,从今年开始,我们在edge系列的颜色命名很中国风,严格意义上打败电商系列之十七实体店的售后和电商相比,实体店在产品售后服务方面,具有天然的优势。天底下没有十全十美的产品,消费者购买产品时,往往考虑的是综合收益。实体店如果能利用好售后服务这个优势,对于自己应对电商的威胁也王传福某些情况下决策最快只需2秒,子公司赚比亚迪的钱不叫本事,拆出去赚钱才叫本事文李阳编辑施智梁年底岁末,回首中国车市,一大特点就是整体车市向下,但新能源车渗透率不断提高。大批尾部车企熬不住寒冬,倒闭或被收购,也有头部车企逆势扩张,在人才市场上大打抢人战,比如DAMA第一章数据管理数据管理的核心驱动因素数据管理的核心驱动力在于组织通过数据资产管理获得商业价值。关键在于拥有高质量可靠性的数据做支撑。数据管理的目标数据安全数据质量元数据理解和支撑业务人员的数据需终于有人把业务中台数据中台技术中台都讲明白了导读2015年阿里巴巴提出大中台,小前台的中台战略,通过实施中台战略找到能够快速应对外界变化,整合阿里各种基础能力,高效支撑业务创新的机制。阿里巴巴中台战略最早从业务中台和数据中台海南冬交会智慧农业吸睛种田越来越有科技范冬交会中国移动展馆展示智慧农业渔业设备。黄艺摄中新网海口12月17日电(记者黄艺)作物听诊器农田里的变形金刚智能水肥一体机在此间进行的2021年中国(海南)国际热带农产品冬季交易会新的支付方式来了,国家正式出手,19家银行开始行动电商经济的繁荣发展,为第三方移动支付插上了腾飞的翅膀,2013年之前,很多人还不是特别熟悉移动支付这一名词,在那之后,随着支付宝微信支付的相继推出,移动支付正式和人们的日常生活融合董明珠说格力空调是中国最好的,我买的却经常出毛病维修费高,大家怎么看?有什么好的解决办法吗?我是单位总务科的,经我手里买的全是格力空调,买了最长的有7年了!除了极个别安装时有漏氟利昂的现象外,没有一台坏的!格力还是不错的!要说格力空调,真的!我用了十几年,家里和店铺上都安带娃家庭优选激光电视,漫反射实力护眼作为电视领域的新物种,近两年激光电视的发展可谓是十分迅猛。这不仅是因为人们消费水平的提高,更是因为人们对用眼安全的重视。我国目前近视患者人数多达6亿,青少年近视率更是高居世界第一。iPhone8Plus只要1300元?看完验机报告瞬间明白了iPhone8Plus目前的价格非常便宜,但性能还算不错,很多人买。今天这台iPhone8Plus只要1300元,按正常的行情看是不可能的,那这台iPhone8Plus为什么这么便
深圳出台重磅新规,一堆APP瑟瑟发抖,网友建议全国推广查个菜谱,需要查看手机里的照片?看个电影,要允许录制音频?长久以来,长期以来,一些APP过度收集个人信息强制索要用户授权令人深恶痛绝。如今,深圳开始对这类APP下狠手!7月6日,深华为P50要来了,我决定放弃iPhone13王者可能会迟到,但永不会缺席!说起华为今年的P系列旗舰手机,我们都知道,因为美国单方面的无端制裁,让原本应该在今年三四月份发布的P50系列机型一直到现在都没有能出现在喜爱它的消费者化繁为简,德邦快递携手华为云打造智慧物流模版2021年以来,中国快递业持续保持强劲增长态势。当前,我国快递日均业务量约3亿件,日均服务用户约6亿人次,行业服务民生和经济的作用愈发凸显。618电商大促等活动不断刷新纪录,拉动了腾讯也要造芯片了?BAT三巨头为何相继入局?随着腾讯的加入,BAT已全部入局造芯领域。近日,作为国内最大的互联网公司腾讯,在招聘官网出现多个芯片研发岗位信息,包括芯片架构师芯片验证工程师芯片设计工程师等,工作地点可选北京上海华为再招201万年薪天才少年,任正非曾说养得起近日,华中科技大学的一则微博让天才少年一词冲上了微博热搜。7月12日,据上述官微消息,近日华中科技大学电信学院2017级博士生廖明辉,及计算机学院本科毕业生武敏颜,二人一起入选华为中芯国际核心技术人员离职曾主导n1工艺芯片项目已量产7月4日,中芯国际(688981)发布公告称,核心技术人员吴金刚离职,对此,7月5日,一位接近中芯国际的知情人士对记者称,作为公司Top5的人物,吴金刚离职前曾主导研发先进工艺项目浅谈FPGA芯片结构(一)之前我们谈过FPGA相关内容,但是更多的是讲解了FPGA工作原理,并举了实际的例子,进行操作流程的说明,今天我们来谈一谈FPGA芯片结构。FPGA芯片内部结构目前大部分的FPGA仍浅谈微电子专业与自动化专业的区别写给2019年的高考学子最近几天,大家最关心的事情之一,可能就是高考成绩放榜,以及录取分数线的陆续公布了。今天陕西省公布了2019年高考录取分数线,所有的学子,现在应该都在查询各个学校专业,相信有一大部分被称作胶水语言的PERL,在芯片设计和验证中可以这样使用最近在做一个验证环境的自动化生成脚本,在写的过程中,随着对PERL认知程度的增加,越感到它的强大之处,今天我们来谈一谈这门语言。PERL(PracticalExtrationand我只是发了个微博,就被公司罚了1。5万元01员工发微博吐槽拖欠工资,被公司罚款1。5万元潘女士是汇桔网南宁分公司的一名员工。2月初,她在社交平台发了条吐槽自己被拖欠工资的微博,不知道被谁截图发给了管理层,公司认为她发表恶2018薪酬报告合集新鲜出炉!你的工资达标了吗?在中小企业当中最着急解决的问题是什么?招聘定薪年度调薪薪酬结构薪酬预算职位设置等问题马上就2019年了想知道同行拿多少距离产生美只有了解差距性才能在新的一年朝着方向去努力这次为大家