步骤1:先运行,看到效果,再学习步骤2:模仿和排错步骤3:HelloController步骤4:GlobalExceptionHandler步骤5:errorPage.jsp步骤6:重启测试

步骤 1 : 先运行,看到效果,再学习
老规矩,先下载下载区(点击进入)的可运行项目,配置运行起来,确认可用之后,再学习做了哪些步骤以达到这样的效果。
测试地址:http://127.0.0.1:8080/hello
如图所示,使用统一的界面显示异常注: 启动方式是Springboot特有的,直接运行类:com.how2java.springboot.Application 的主方法。

步骤 2 : 模仿和排错
在确保可运行项目能够正确无误地运行之后,再严格照着教程的步骤,对代码模仿一遍。
模仿过程难免代码有出入,导致无法得到期望的运行结果,此时此刻通过比较正确答案 ( 可运行项目 ) 和自己的代码,来定位问题所在。
采用这种方式,学习有效果,排错有效率,可以较为明显地提升学习速度,跨过学习路上的各个槛。
推荐使用diffmerge软件,进行文件夹比较。把你自己做的项目文件夹,和我的可运行项目文件夹进行比较。
这个软件很牛逼的,可以知道文件夹里哪两个文件不对,并且很明显地标记出来
这里提供了绿色安装和使用教程:diffmerge 下载和使用教程步骤 3 : HelloController
修改HelloController,使得访问/hello一定会产生异常: some exceptionpackage com.how2java.springboot.web;import java.text.DateFormat;import java.util.Date;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.web.bind.annotation.RequestMapping;@Controllerpublic class HelloController {@RequestMapping("/hello")public String hello(Model m) throws Exception {m.addAttribute("now", DateFormat.getDateTimeInstance().format(new Date()));if(true){throw new Exception("some exception");}return "hello";}}步骤 4 : GlobalExceptionHandler
新增加一个类GlobalExceptionHandler,用于捕捉Exception异常以及其子类。
捕捉到之后,把异常信息,发出异常的地址放进ModelAndView里,然后跳转到 errorPage.jsppackage com.how2java.springboot.exception;import javax.servlet.http.HttpServletRequest;import org.springframework.web.bind.annotation.ControllerAdvice;import org.springframework.web.bind.annotation.ExceptionHandler;import org.springframework.web.servlet.ModelAndView;@ControllerAdvicepublic class GlobalExceptionHandler {@ExceptionHandler(value = Exception.class)public ModelAndView defaultErrorHandler(HttpServletRequest req, Exception e) throws Exception {ModelAndView mav = new ModelAndView();mav.addObject("exception", e);mav.addObject("url", req.getRequestURL());mav.setViewName("errorPage");return mav;}}步骤 5 : errorPage.jsp
errorPage.jsp 格式化一下,稍微好看点显示这些异常信息<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><div style="width:500px;border:1px solid lightgray;margin:200px auto;padding:80px">系统 出现了异常,异常原因是:${exception}<br><br>出现异常的地址是:${url}</div>步骤 6 : 重启测试
按理说会自动重启,因为配置了热部署http://127.0.0.1:8080/hello

更多内容,点击了解: https://how2j.cn/k/springboot/springboot-error/1643.html

bcb异常处理显示错误行号_SpringBoot系列(七)- springboot 错误异常处理统一办法相关推荐

  1. bcb异常处理显示错误行号_python基础篇:错误和异常

    在前面介绍Python语法的过程中,我们已经接触到了解释器给的错误和异常,但并没有详细讲解它们.现在我们就全面的来学习Python是对语法错误等错误进行定义和处理的,这包括至少有两种可以区分的错误,它 ...

  2. myeclipse中怎么显示代码行号

    myeclipse已经用了很长一段时间了,当你面对这一个报错提示寻找解决问题的办法时,不经意间突然发现,哎?myeclipse行号怎么不见了呢?或许你可能压根就不知道myeclipse还能显示行号吧. ...

  3. vb6、vbA返回错误行号的系统变量Erl

    access 导出表结构 ,我下载了 一位网友的程序 修改时 发现 老是 3720 错误,于是查询 解决方法,没想到 发现了 VB6 VBA 返回错误行号 的 系统变量Erl,在某些情况下 非常有用, ...

  4. log4j2 pattern 行号_Springboot整合log4j2日志全解总结

    在项目推进中,如果说第一件事是搭Spring框架的话,那么第二件事情就是在Sring基础上搭建日志框架,我想很多人都知道日志对于一个项目的重要性,尤其是线上Web项目,因为日志可能是我们了解应用如何执 ...

  5. VS2008显示代码行号

    一.执行菜单:[工具]-[选项] 二.在弹出的选项对话框中,一次选择[文本编辑器]-[C/C++],然后在[显示]下勾选[行号],单击确定生效.

  6. VC6.0显示代码行号

    VC6.0是一款比较稳定的功能强大的IDE,目前也有很多人在使用.但美中不足的是它不能像其他IDE那样显示行号. 这里需要用到一个插件VC6LineNumberAddin,下载地址:http://fi ...

  7. Emacs 显示左侧行号

    Emacs 26 开始,就自带了显示行号的模式 display-line-numbers-mode. 临时开启:M-x display-line-numbers-mode 通过配置文件(如~/.ema ...

  8. VC++6.0显示代码行号【成功破解行数显示限制,完全免费!!!】

    VC++6.0作为一款比较古老的编码IDE,软件本身不带代码行显示,这一点灰常不好! 查看了CSDN上几乎所有的博客,如果想要不花币,只能通过未破解版的行数显示插件在IDE上显示500行. 这让我灰常 ...

  9. vim显示/隐藏行号,永久显示行号

    显示行号 在vim命令中输入下面的内容可以给文本文件显示行号: :set nu或:set number 隐藏行号 下面的命令可以将行号隐藏: :set nonu或:set nonumber 永久显示行 ...

最新文章

  1. H2:开源内存数据库引擎
  2. Keil5.15使用GCC编译器链接.a库文件
  3. 一个命令让Ubuntu升级变得更简单
  4. java加密解密代码_base64位加密解密原理及js代码实现
  5. git删除所有历史提交记录,只留下最新的干净代码
  6. FZU 2082 过路费
  7. 历届试题 大臣的旅费(深搜 树的直径)
  8. 【Java】关于学习while do-while for循环知识点的总结
  9. Java实现的基于socket的一次通信
  10. 7-4 组从配置-操作
  11. matlab表格三维柱状图,excel制作四维数据表格-excel三维柱形图 ,请问如何根据excel表格中的数据......
  12. 计算机电缆yjv,WDZN-YJV是什么电缆|yjv电缆
  13. 2013年上半年 网络工程师试卷答案及详解
  14. 几个常用的C语言编程工具,极力推荐!
  15. 英语听说计算机查分,2018中考第二次英语听说考明日查分,附查分常见问答
  16. SQLiteSpy 打开SqLite数据库文件
  17. ASP.NET Web程序设计 第三章 高级控件
  18. Java实现 LeetCode 31下一个排列
  19. TNFBA治疗强柱达52周时脊柱新骨形成与慢性炎症损害和脂肪变性有关
  20. GPS时钟系统(GPS时钟同步系统-GPS时间同步系统)

热门文章

  1. linux内核定义,Linux内核定义的常量
  2. mysql修改字段非必输_mysql有些字段是非必填的,传空要查所有数据该怎么处理?...
  3. Linus:“我删除了Linux,因为它就是个垃圾!”
  4. 在线运行 Linux,强的离谱!
  5. 包邮送50本畅销书,涵盖Python、数据库、机器学习等!
  6. launch mysql_Mac Pro 开机自启动 PHP-FPM,Nginx,MySql 等软件
  7. android中布局全屏,怎么在Android 应用中实现一个全屏与非全屏功能
  8. intro to cs with python_CS 105 – Intro to Computing Non-Tech Spring 2019
  9. dell驱动安装工具_技术丨如何快速安装显卡驱动
  10. 找出两列表的共有元素python_python 找出两个dataframe中不同的元素