018_SpringBoot异常处理方式-ExceptionHandle注解处理异常
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注解处理异常相关推荐
- 面向切面(AOP)之Spring接口方式 schema配置方式 aspectj注解方式
一.初识AOP 关于AOP的学习可以参看帮助文档:spring-3.2.0.M2\docs\reference\html目录下index.html的相关章节 1.AOP:Aspect-O ...
- SpringAOP xml 方式和注解简单实现日志处理
1.首先是用注解方式捕捉Controller 层异常: 首先是引入aop 依赖的jar <!-- Spring AOP 日志管理需要导入的包 --><dependency>&l ...
- Spring Boot项目优雅的全局异常处理方式(全网最新)
全局异常处理 前言 一.全局异常处理方式一 1.1 自定义全局异常类 1.2 手动抛出异常 1.3 测试打印 二.全局异常处理方式二 2.1 定义基础接口类 2.2 定义枚举类 2.3 自定义异常类 ...
- SpringSecurity权限控制之异常处理方式三
方式三:编写异常处理器 拦截器和过滤器的区别 拦截器:可以在Spring中进行使用 过滤器:只能在web.xml中进行配置,也就是只能在web工程中使用 或者我们可以实现一个Spring给我们提供好的 ...
- .NET Core开发实战(第22课:异常处理中间件:区分真异常与逻辑异常)--学习笔记(上)...
22 | 异常处理中间件:区分真异常与逻辑异常 这一节我们来讲解一下错误处理的最佳实践 系统里面异常处理,ASP.NET Core 提供了四种方式 1.异常处理页 2.异常处理匿名委托方法 3.IEx ...
- java异常处理方式推荐做法_谈谈Java异常处理这件事儿
此文已由作者谢蕾授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 前言 我们对于"异常处理"这个词并不陌生,众多框架和库在异常处理方面都提供了便利,但是对于 ...
- java中的异常处理代码,java_深入剖析Java中的各种异常处理方式,1. 调试追踪代码:public s - phpStudy...
深入剖析Java中的各种异常处理方式 1. 调试追踪代码: public static void enterTryMethod() { System.out.println("enter a ...
- python异常处理的作用_Python 中的异常处理方式
封面图片来源:沙沙野 异常处理什么是异常处理?Python 解释器检测到错误就会触发异常,或者程序员自己触发异常 程序中编写特定的代码,专门用来捕捉这个异常(这段代码与程序逻辑无关,与异常处理有关) ...
- spring框架学习(一):Bean的装配方式 ——基于注解的装配、自动装配
Bean的装配方式 基于注解装配 常用注解: 总结 自动装配 [序言] 在前面的例子中我们就可以看到了使用基于XML方式的缺点了:如果应用中有较多的Bean对象,则会导致xml文件过于臃肿,给后续的维 ...
最新文章
- php扩展管理配置信息,三方插件配置文件说明
- Javascript进阶:匿名函数详解
- 从FCN到DeepLab
- git add . 出现错误 The file will have its original line endings in your working directory. 解决方案...
- CRC16-循环冗余校验
- asp.net用标签递归一颗树
- LVS负载均衡DR模式实现
- (字节/华为/美团)前端面经记录冷冷清清的金三银四
- 基于.NET CORE微服务框架 -谈谈surging API网关
- vue 2.6 插槽v-slot用法记录
- MongoDB基本管理命令 [转]
- 【软件设计师教程】程序设计语言基础知识
- win10计算机属性快捷键,win 10 电脑常用快捷键汇总
- 《程序员修炼之道》解读
- PHP调用京东联盟接口以及配置签名
- 笔记本省电问题分析及其实用小技巧
- 干货!iOS 与 Android 的APP 设计差异
- linux pdf 宋宝华,51CTO博客-专业IT技术博客创作平台-技术成就梦想
- 计算机专业实训报告总结
- Toad 所有 菜单说明(太多)