springboot中自定义异常以及定制异常界面实现过程解析

 更新时间:2019年09月26日 14:39:24   作者:shun-w  
这篇文章主要介绍了springboot中自定义异常以及定制异常界面实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

不多说废话,直接进入主菜!!

步骤:

1.搭建SpringBoot的开发环境,略(有不会的可以私信我)。

2.编写一个自定义异常,自定义异常需要继承RuntimeException。写一个构造函数,并调用父类保存异常信息。

public class MyException extends RuntimeException {
  public MyException(String massage) {
    super(massage);
  }
}

3.编写一个控制器,用于抛出异常。当请求参数param=aa时抛出异常,否则不抛出异常。

@Controller
public class MyController {
  @ResponseBody
  @RequestMapping("/exception")
  public String ee(String param){
    if(param.equals("aa")){
      throw new MyException("抛出自定义异常");
    }
    return "没有抛出异常";
  }
}

当控制器抛出自定义异常时,这是服务器会发生状态码为500的错误。springboot自带的异常界面不是很友好,我们可以定制一个异常界面用于显示异常信息,看下一步骤。

4.定制自定义异常处理界面。springboot自动配置了视图解析器,我们可以编写一个500.html放在classpath:tempaltes/error目录下。

500.html代码如下(用的是thymeleaf渲染):

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
</head>
<body>
status: [[${status}]] <br>
timestamp: [[${timestamp}]] <br>
message: [[${message}]] <br>
exception: [[${exception}]] <br>
</body>
</html>

代码已经编写完毕,来看看效果吧!

当我们访问 http://localhost/exception?param=aa时抛出异常,结果如下:

访问 http://localhost/exception?param=bb,不会抛出异常,结果如下:

** 举一反三:在用户管理系统中,我们可以自定义用户不存在异常类,当查询某个不存在的用户时,让控制器抛出用户不存在异常,并跳转到一个友好的提示界面。

抢票系统,当用户购买的票已经卖完,我们可以抛出一个自定义的票已经没有的异常,并跳转到一个友好的提示界面。 **

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • ElasticSearch的安装与基本概念

    ElasticSearch的安装与基本概念

    这篇文章主要介绍了ElasticSearch的安装与基本概念,提供了一个分布式多用户能力的全文搜索引擎,Elasticsearch是用Java开发的,需要的朋友可以参考下
    2023-04-04
  • IDEA中database使用教程

    IDEA中database使用教程

    idea集成了一个数据库管理工具,可以可视化管理很多种类的数据库,本文主要介绍了IDEA中database使用教程,具有一定的参考价值,感兴趣的可以了解一下
    2023-06-06
  • Spring轻松解决循环依赖

    Spring轻松解决循环依赖

    Spring的解决循环依赖是有前置条件的,要解决循环依赖我们首先要了解Spring Bean对象的创建过程和依赖注入的方式。依赖注入方式,我之前的博客有所分享,大家可以在看本篇文章之前进行一下小小的回顾
    2023-04-04
  • SpringCloud之Admin服务监控实现流程示例详解

    SpringCloud之Admin服务监控实现流程示例详解

    这篇文章主要为大家介绍了SpringCloud之Admin服务监控流程示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-09-09
  • Java日常练习题,每天进步一点点(34)

    Java日常练习题,每天进步一点点(34)

    下面小编就为大家带来一篇Java基础的几道练习题(分享)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧,希望可以帮到你
    2021-07-07
  • java中javaBean与Bean的深入理解

    java中javaBean与Bean的深入理解

    这篇文章主要介绍了java中javaBean与Bean的深入理解的相关资料,这里说明他们的优点及使用方法,需要的朋友可以参考下
    2017-08-08
  • Java 正则表达式 解释说明

    Java 正则表达式 解释说明

    java正则知识小结,一些常见的正则都包括在里面,推荐收藏。
    2009-06-06
  • Java8新特性之Base64详解_动力节点Java学院整理

    Java8新特性之Base64详解_动力节点Java学院整理

    这篇文章主要为大家详细介绍了Java8新特性之Base64的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-06-06
  • Springboot跨域问题三种解决方案

    Springboot跨域问题三种解决方案

    这篇文章主要介绍了Springboot跨域问题三种解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-04-04
  • SpringCloud Open feign 使用okhttp 优化详解

    SpringCloud Open feign 使用okhttp 优化详解

    这篇文章主要介绍了SpringCloud Open feign 使用okhttp 优化详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-02-02

最新评论