1. 使用maven构建SpringBoot的名叫spring-boot-exception2项目

2. pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.bjbs</groupId><artifactId>spring-boot-exception2</artifactId><version>0.0.1-SNAPSHOT</version><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.5.13.RELEASE</version></parent><!-- 修改jdk版本 --><properties><java.version>1.8</java.version><!-- 指定thymeleaf和thymeleaf-layout-dialect高版本可以防止html标签不规范报错 --><thymeleaf.version>3.0.2.RELEASE</thymeleaf.version><thymeleaf-layout-dialect.version>2.0.4</thymeleaf-layout-dialect.version></properties><dependencies><!-- springBoot的启动器 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId></dependency></dependencies>
</project>

3. 新建UserController.java

package com.bjbs.controller;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;@Controller
public class UserController {@RequestMapping("/nullException")public String nullException(){String str = null;str.length();return "index";}@RequestMapping("/byZeroException") // java.lang.ArithmeticExceptionpublic String byZeroException(){int a = 10/0;return "index";}/*** 发生该java.lang.NullPointerException异常走这里* 该方法需要返回一个ModelAndView: 目的是可以让我们封装异常信息以及视图的指定* 参数Exception e: 会将产生异常对象注入到方法中*/@ExceptionHandler(value={java.lang.NullPointerException.class})public ModelAndView nullPointerExceptionHandler(Exception e){ModelAndView mv = new ModelAndView();mv.addObject("error", "自定义空指针错误提示信息: " + e.toString());mv.setViewName("error");return mv;}/*** 发生该java.lang.ArithmeticException异常走这里* 该方法需要返回一个ModelAndView: 目的是可以让我们封装异常信息以及视图的指定* 参数Exception e: 会将产生异常对象注入到方法中*/@ExceptionHandler(value={java.lang.ArithmeticException.class})public ModelAndView arithmeticExceptionHandler(Exception e){ModelAndView mv = new ModelAndView();mv.addObject("error", "自定义除以0错误提示信息: " + e.toString());mv.setViewName("error");return mv;}
}

4. 新建App.java

package com.bjbs;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;/*** SpringBoot启动类*/
@SpringBootApplication
public class App {public static void main(String[] args) {SpringApplication.run(App.class, args);}
}

5. 在src/main/resources/templates下, 新建index.html

<!DOCTYPE html>
<html><head><meta charset="UTF-8" /><title>主页</title></head><body><span th:text="Hello"></span></body>
</html>

6. 在src/main/resources/templates下, 新建error.html, 注意: 名称必须叫error。

<!DOCTYPE html>
<html><head><meta charset="UTF-8" /><title>错误提示页面</title></head><body>出错了, 请与管理员联系。<span th:text="${error}"></span></body>
</html>

7. 运行项目, 使用浏览器访问空指针异常

8. 运行项目, 使用浏览器访问除数为0异常

018_SpringBoot异常处理方式-ExceptionHandle注解处理异常相关推荐

  1. 面向切面(AOP)之Spring接口方式 schema配置方式 aspectj注解方式

    一.初识AOP   关于AOP的学习可以参看帮助文档:spring-3.2.0.M2\docs\reference\html目录下index.html的相关章节      1.AOP:Aspect-O ...

  2. SpringAOP xml 方式和注解简单实现日志处理

    1.首先是用注解方式捕捉Controller 层异常: 首先是引入aop 依赖的jar <!-- Spring AOP 日志管理需要导入的包 --><dependency>&l ...

  3. Spring Boot项目优雅的全局异常处理方式(全网最新)

    全局异常处理 前言 一.全局异常处理方式一 1.1 自定义全局异常类 1.2 手动抛出异常 1.3 测试打印 二.全局异常处理方式二 2.1 定义基础接口类 2.2 定义枚举类 2.3 自定义异常类 ...

  4. SpringSecurity权限控制之异常处理方式三

    方式三:编写异常处理器 拦截器和过滤器的区别 拦截器:可以在Spring中进行使用 过滤器:只能在web.xml中进行配置,也就是只能在web工程中使用 或者我们可以实现一个Spring给我们提供好的 ...

  5. .NET Core开发实战(第22课:异常处理中间件:区分真异常与逻辑异常)--学习笔记(上)...

    22 | 异常处理中间件:区分真异常与逻辑异常 这一节我们来讲解一下错误处理的最佳实践 系统里面异常处理,ASP.NET Core 提供了四种方式 1.异常处理页 2.异常处理匿名委托方法 3.IEx ...

  6. java异常处理方式推荐做法_谈谈Java异常处理这件事儿

    此文已由作者谢蕾授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 前言 我们对于"异常处理"这个词并不陌生,众多框架和库在异常处理方面都提供了便利,但是对于 ...

  7. java中的异常处理代码,java_深入剖析Java中的各种异常处理方式,1. 调试追踪代码:public s - phpStudy...

    深入剖析Java中的各种异常处理方式 1. 调试追踪代码: public static void enterTryMethod() { System.out.println("enter a ...

  8. python异常处理的作用_Python 中的异常处理方式

    封面图片来源:沙沙野 异常处理什么是异常处理?Python 解释器检测到错误就会触发异常,或者程序员自己触发异常 程序中编写特定的代码,专门用来捕捉这个异常(这段代码与程序逻辑无关,与异常处理有关) ...

  9. spring框架学习(一):Bean的装配方式 ——基于注解的装配、自动装配

    Bean的装配方式 基于注解装配 常用注解: 总结 自动装配 [序言] 在前面的例子中我们就可以看到了使用基于XML方式的缺点了:如果应用中有较多的Bean对象,则会导致xml文件过于臃肿,给后续的维 ...

最新文章

  1. php扩展管理配置信息,三方插件配置文件说明
  2. Javascript进阶:匿名函数详解
  3. 从FCN到DeepLab
  4. git add . 出现错误 The file will have its original line endings in your working directory. 解决方案...
  5. CRC16-循环冗余校验
  6. asp.net用标签递归一颗树
  7. LVS负载均衡DR模式实现
  8. (字节/华为/美团)前端面经记录冷冷清清的金三银四
  9. 基于.NET CORE微服务框架 -谈谈surging API网关
  10. vue 2.6 插槽v-slot用法记录
  11. MongoDB基本管理命令 [转]
  12. 【软件设计师教程】程序设计语言基础知识
  13. win10计算机属性快捷键,win 10 电脑常用快捷键汇总
  14. 《程序员修炼之道》解读
  15. PHP调用京东联盟接口以及配置签名
  16. 笔记本省电问题分析及其实用小技巧
  17. 干货!iOS 与 Android 的APP 设计差异
  18. linux pdf 宋宝华,51CTO博客-专业IT技术博客创作平台-技术成就梦想
  19. 计算机专业实训报告总结
  20. Toad 所有 菜单说明(太多)

热门文章

  1. Eclipse,NetBeans及IntelliJ—Java IDE大战之NetBeans篇
  2. 使用的是html5的canvas将文字转换成图片
  3. Topcoder SRM570 900 CurvyonRails
  4. 查询分页的几种Sql写法
  5. MySQL慢查询处理之mysqldumpslow和mysqlsla
  6. fedora18装一些软件及配置
  7. 流浪:从南海到北海,面朝大海,春暖花开。
  8. PHP CURL 哈哈哈哈哈记录一下
  9. Apache与Nginx的优缺点比较
  10. DDoS攻击可能损害企业品牌的四种方式