Spring Boot(三)

错误处理

1.自定义处理异常,返回指定界面

controller出现错误的方法中:

@RequestMapping("/error")public String error() {String str=null;str.length();return "test";}

自定义错误页面.html中:

<!DOCTYPE html><html xmlns:th="http://www.thymeleaf.org"><head><meta charset="UTF-8"><title>Title</title></head><body>出错了<span th:text="${error}"></span></body></html>

2.捕获异常,ExceptionHandler 处理方法

方法中出现异常

@RequestMapping("/error")public String error() {String str=null;str.length();return "test";}

1)Handler处理器ExceptionHandler捕获指定异常

@ExceptionHandler(value = {java.lang.NullPointerException.class})public ModelAndView excuteException(Exception e){ModelAndView mv=new ModelAndView();mv.addObject("error",e.toString());mv.setViewName("error1");return mv;}

2)跳转至error1视图

<!DOCTYPE html><html xmlns:th="http://www.thymeleaf.org"><head><meta charset="UTF-8"><title>Title</title></head><body>error1界面<span th:text="${error}"></span></body></html>

3.全局异常处理——SimpleMappingExceptionResolver类

1)通过创建一个类,添加@Configuration+@Bean注解方式可以让springboot启动时注册这个bean

SpringBoot启动时加载这个bean,发生指定错误返回指定界面

@Configurationpublic class GlobalException {@Beanpublic SimpleMappingExceptionResolver getExceptionResolver(){SimpleMappingExceptionResolver resolver=new SimpleMappingExceptionResolver();Properties mappings=new Properties();/** 参数一:异常的类型,异常类型的全名* 参数二:视图名称* */mappings.put("java.lang.NullPointerException","error1");resolver.setExceptionMappings(mappings);return resolver;}}

2)出现错误方法

@RequestMapping("/error")public String error() {String str=null;str.length();return "test";}

4.自定义异常类——HandlerExceptionResolver

1)实现HandlerExceptionResolver接口里面的方法

@Configurationpublic class GlobalException implements HandlerExceptionResolver {/*对resolveException对象进行错误类型判断*/@Overridepublic ModelAndView resolveException(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) {ModelAndView mv=new ModelAndView();if (e instanceof NullPointerException){System.out.println("java.lang.NullPointerException");mv.setViewName("test");}mv.addObject("error",e.toString());return mv;}}

2)Controller里面出现异常的方法

@RequestMapping("/error")public String error() {String str=null;str.length();return "test";}

3)出现指定错误,返回指定视图html

test.html视图

<!DOCTYPE html><html xmlns:th="http://www.thymeleaf.org"><head><meta charset="UTF-8"><title>Title</title></head><body>出错了<span th:text="${error}"></span></body></html>

JavaWeb学习之路——SpringBoot 中几种异常处理方法(四)相关推荐

  1. JavaWeb学习之路——SpringBoot 中thymeleaf模板用法(三)

    thymeleaf模板用法 thymeleaf通过它特定的语法,对HTML的标记做渲染,能够访问后台的动态数据,实现静态html界面的动态化 1.添加架包 <!--引入动态模板-->< ...

  2. JavaWeb学习之路——SpringBoot搭建项目框架(一)

    1.使用maven创建Spring Boot项目 1)在pom.xml中修改jdk版本 <!--jdk版本--> <properties> <java.version&g ...

  3. JavaWeb学习之路——SpringBoot整合Mybatis(二)

    1)pom文件中添加相应的jar包: <!--Mybatis启动器--><dependency><groupId>org.mybatis.spring.boot&l ...

  4. 【学习笔记】springboot中的全局异常处理 和@ControllerAdvice的使用

    文章目录 全局异常处理 例子 @ControllerAdvice的其他使用场景 全局异常处理 系统中异常包括:编译时异常和运行时异常RuntimeException ,前者通过捕获异常从而获取异常信息 ...

  5. JavaWeb学习之路——SSM框架之SpringMVC(八)

    SpringMVC参数传递:把内容写到方法(HandlerMethod)参数中,SpringMVC只要有这个内容,则会注入,在这里使用注解的方式来传递参数 前提使用springmvc注解功能,相应配置 ...

  6. JavaWeb学习之路——SSM框架之Spring(五)

    前情提要请看JavaWeb学习之路--SSM框架之Spring(四)                                         整合Spring和Mybatis框架 1.在项目的 ...

  7. JavaWeb学习之路——SSM框架之Mybatis(三)

    数据库配置和相关类创建看上篇:JavaWeb学习之路--SSM框架之Mybatis(二) https://blog.csdn.net/kuishao1314aa/article/details/832 ...

  8. SpringBoot学习笔记(9)----SpringBoot中使用关系型数据库以及事务处理

    在实际的运用开发中,跟数据库之间的交互是必不可少的,SpringBoot也提供了两种跟数据库交互的方式. 1. 使用JdbcTemplate 在SpringBoot中提供了JdbcTemplate模板 ...

  9. SpringBoot学习笔记(4)----SpringBoot中freemarker、thymeleaf的使用

    1. freemarker引擎的使用 如果你使用的是idea或者eclipse中安装了sts插件,那么在新建项目时就可以直接指定试图模板 如图: 勾选freeMarker,此时springboot项目 ...

最新文章

  1. 获取本地System权限
  2. C# 16进制与字符串、字节数组之间的转换
  3. Vuex-状态管理模式
  4. Web 趋势榜: 上周不可错过的最热门的 10 大 Web 项目 - 又增加了那么多的好项目啊 - 210611...
  5. 计算机权限常用英语词汇,计算机英语-计算机常用英语词汇表讲课稿.pdf
  6. 按汇总分组/多维数据集
  7. 解决: Elements in iteration expect to have ‘v-bind:key‘ directives
  8. 注册围框html,一种可调模具围框的制作方法
  9. cds5516舵机控制程序_[电力世界]中的应用程序CDS
  10. [渝粤教育] 西南科技大学 文学概论 在线考试复习资料
  11. 怎么用计算机同步文件夹,DSynchronize同步电脑本地文件夹教程
  12. VSCode下载安装和修改插件下载位置(配置右键菜单)和更换终端
  13. jsp中java代码的输出,Java控制台输入,输出!-JSP教程,Java技巧及代码
  14. 平均销售额计算机公式,销售额是什么意思(销售额的基本计算公式)
  15. 【Linux】Ubuntu20.04 无法访问 http://cn.archive.ubuntu.com 问题记录解决
  16. android天气api接口,[Android] 免费天气预报接口
  17. 面试分享:一年经验初探阿里巴巴前端社招
  18. TreeGrid插件简练了解使用
  19. pyhton的tkinter制作简易口算训练器
  20. dell Precision 3550 更换固态硬盘

热门文章

  1. 向一个无法连接的网络尝试了一个套接字操作_python3从零学习-5.8.1、socket—底层网络接口...
  2. c语言实现辗除法,辗除法什么东西哦?
  3. php set error handler,php的set_error_handler正确用法
  4. Android 利用sharepreference保存应用程序状态
  5. 五十四、快速上手uniapp
  6. Swin Transformer升级版来了!30亿参数,刷榜多项视觉任务
  7. 从ICCV 2021看夜间场景自监督深度估计最新进展
  8. 系统调研450篇文献,微软亚洲研究院推出超详尽语音合成综述
  9. 十年编程经验输给新晋AI工程师,6个月我们带你绝地反击
  10. “人工智能创新大讲堂”全日程发布 | 听大咖畅谈智能社会