SpringMVC 异常处理

绝地灬酷狼 2022-01-22 11:53 496阅读 0赞

如果我们的代码出现异常时一般会在页面很生硬的把异常打印出来,一是这样很难看再就是显得页面很没有水准,此时我们就可以使用异常处理器使页面出现异常时跳转到一个比较友好的错误提示页面。

1.编写自定义异常类

2.编写异常处理器

3.配置异常处理器

首先我们要编写一个自定义异常类,用于提示信息。

  1. package com.qst.Exception;
  2. /*
  3. 自定义异常
  4. */
  5. public class SysException extends Exception{
  6. //存储异常信息
  7. private String message;
  8. @Override
  9. public String getMessage() {
  10. return message;
  11. }
  12. public void setMessage(String message) {
  13. this.message = message;
  14. }
  15. public SysException(String message) {
  16. this.message = message;
  17. }
  18. }

编写异常处理器 需要实现HandlerExceptionResolver这个接口

  1. package com.qst.Exception;
  2. import org.springframework.web.servlet.HandlerExceptionResolver;
  3. import org.springframework.web.servlet.ModelAndView;
  4. import javax.servlet.http.HttpServletRequest;
  5. import javax.servlet.http.HttpServletResponse;
  6. //异常处理器
  7. public class ExceptionResolver implements HandlerExceptionResolver{
  8. @Override
  9. public ModelAndView resolveException(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) {
  10. SysException ex = null;
  11. //判断异常是不是自定义的那个异常
  12. if(e instanceof SysException){
  13. //是的话进行强转
  14. ex=(SysException)e;
  15. }else{
  16. //不是则输出系统维护
  17. ex=new SysException("系统维护。。");
  18. }
  19. ModelAndView mv= new ModelAndView();
  20. //把异常信息封装
  21. mv.addObject("errorMess",ex.getMessage());
  22. //设置跳转页
  23. mv.setViewName("error");
  24. System.out.println(e.getMessage());
  25. return mv;
  26. }
  27. }

在控制器空处理异常

  1. package com.qst.Controller;
  2. import com.qst.Exception.SysException;
  3. import org.springframework.stereotype.Controller;
  4. import org.springframework.web.bind.annotation.RequestMapping;
  5. @Controller
  6. @RequestMapping("/exc")
  7. public class exceptionController {
  8. @RequestMapping("/textException")
  9. public String textException() throws SysException{
  10. System.out.println("exc....");
  11. //int b=10/0;
  12. try {
  13. int a = 10/0;
  14. } catch (Exception e) {
  15. e.printStackTrace();
  16. throw new SysException("查询出现错误");
  17. }
  18. return "success";
  19. }
  20. }

在配置文件中添加一个异常解析器用于解析刚编写的异常处理器

  1. <!--配置异常解析器-->
  2. <bean id="exceptionResolver" class="com.qst.Exception.ExceptionResolver"></bean>

error.jsp 用于进行显示异常页面

  1. <%--isELIgnored="false" 用于 开启EL表达式--%>
  2. <%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
  3. <html>
  4. <head>
  5. <title>error</title>
  6. </head>
  7. <body>
  8. ${errorMess}
  9. </body>
  10. </html>

发表评论

表情:
评论列表 (有 0 条评论,496人围观)

还没有评论,来说两句吧...

相关阅读

    相关 SpringMVC 异常处理

    如果在请求处理的时候,出现了异常,那它的输出依然会是Servlet响应。异常必须要以某种方式转换为响应。 Spring提供了多种方式将异常转换为响应: 1. 特定的Spr

    相关 SpringMVC处理异常

    Spring提供了多种方式将异常转换为响应:     1.特定的Spring异常将会自动映射为指定的HTTP状态码;     2.异常上可以添加@ResponseSta

    相关 springMVC异常处理

    异常处理思路: 系统中异常包括两种:预期异常和运行时异常RuntimeException.前者通过捕获异常从而获取异常信息,后者主要通过规范代码开发、测试通过手段减少运行时异

    相关 SpringMVC异常处理

      在Spring MVC中,所有用于处理在请求映射和请求处理过程中抛出的异常的类,都要实现 HandlerExceptionResolver 接口。 一个基于Spring

    相关 SpringMVC 异常处理

    如果我们的代码出现异常时一般会在页面很生硬的把异常打印出来,一是这样很难看再就是显得页面很没有水准,此时我们就可以使用异常处理器使页面出现异常时跳转到一个比较友好的错误提示页面