步骤:html
public class MyException extends RuntimeException { public MyException(String massage) { super(massage); } }
@Controller public class MyController { @ResponseBody @RequestMapping("/exception") public String ee(String param){ if(param.equals("aa")){ throw new MyException("抛出自定义异常"); } return "没有抛出异常"; } }
当控制器抛出自定义异常时,这是服务器会发生状态码为500的错误。springboot自带的异常界面不是很友好,咱们能够定制一个异常界面用于显示异常信息,看下一步骤。java
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
** 触类旁通:在用户管理系统中,咱们能够自定义用户不存在异常类,当查询某个不存在的用户时,让控制器抛出用户不存在异常,并跳转到一个友好的提示界面。
抢票系统,当用户购买的票已经卖完,咱们能够抛出一个自定义的票已经没有的异常,并跳转到一个友好的提示界面。 **服务器