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

  

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

  

步骤:   

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

  

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

        公开课MyException RuntimeException扩展{   公共MyException(字符串按摩){   超级(按摩);   }   }      

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

        @ controller   公开课MyController {   @ResponseBody   @RequestMapping("/例外”)   ee公共字符串(字符串参数){   如果(param.equals (aa)) {   把新MyException(“抛出自定义异常”);   }   返回“没有抛出异常”;   }   }      

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

  

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

  

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

        & lt; !DOCTYPE html>   & lt; html lang=癳n”比;   & lt; head>   & lt;元charset=皍tf - 8”比;   & lt; title> Title   & lt;/head>   & lt; body>   状态:[[${地位}]]& lt; br>   时间戳:[[${时间戳}]]& lt; br>   信息:[[${消息}]]& lt; br>   例外:[[${异常}]]& lt; br>   & lt;/body>   & lt;/html>      

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

  

当我们访问http://localhost/exception& # 63;参数=aa时抛出异常,结果如下:

  

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

  

访问http://localhost/exception& # 63;参数=bb,不会抛出异常,结果如下:

  

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

  

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

  

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

  

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

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