springboot中自定义异常以及定制异常界面

很少说废话,直接进入主菜!!

步骤:html

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自带的异常界面不是很友好,咱们能够定制一个异常界面用于显示异常信息,看下一步骤。java

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

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

<!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,不会抛出异常,结果以下:
springboot


** 触类旁通:在用户管理系统中,咱们能够自定义用户不存在异常类,当查询某个不存在的用户时,让控制器抛出用户不存在异常,并跳转到一个友好的提示界面。
抢票系统,当用户购买的票已经卖完,咱们能够抛出一个自定义的票已经没有的异常,并跳转到一个友好的提示界面。 **服务器

相关文章
相关标签/搜索