SpringMVC-异常处理

╰+攻爆jí腚メ 2023-08-17 16:24 18阅读 0赞

SpringMVC异常处理

1. 异常处理的思路

系统中异常包括两类:编译时异常和运行时异常,前者通过捕获异常从而获得异常信息,后者主要通过规范代码开发、测试通过手段减少运行时异常的发生。

系统的dao、service、controller出现都通过throws Exception向上抛出,最后由SpringMVC前端控制器交由异常处理器进行异常处理。

1685989-20190822114701582-1281363443.png

2.实现步骤

  2.1 编写异常类和错误页面

  

  1. package com.llb.exception;
  2. /**异常类
  3. * Ceate By llb on 2019/8/21
  4. */
  5. public class SysException extends Exception {
  6. private String msg ;
  7. public SysException(String msg) {
  8. this.msg = msg;
  9. }
  10. public String getMsg() {
  11. return msg;
  12. }
  13. public void setMsg(String msg) {
  14. this.msg = msg;
  15. }
  16. }

  错误页面:

  1. <%--
  2. Created by IntelliJ IDEA.
  3. User: Administrator
  4. Date: 2019/8/21
  5. Time: 17:37
  6. To change this template use File | Settings | File Templates.
  7. --%>
  8. <%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
  9. <html>
  10. <head>
  11. <title>Title</title>
  12. </head>
  13. <body>
  14. <h1>网络去旅行了</h1>
  15. ${msg}
  16. </body>
  17. </html>

  2.2 自定义异常处理器

  

  1. package com.llb.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. * 处理异常业务逻辑
  8. * Ceate By llb on 2019/8/21
  9. */
  10. public class SysExceptionResolve implements HandlerExceptionResolver {
  11. @Override
  12. public ModelAndView resolveException(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object obj, Exception ex) {
  13. //获取到异常
  14. SysException e = null;
  15. if (ex instanceof SysException){
  16. e = (SysException) ex;
  17. }else{
  18. e = new SysException("系统正在维护");
  19. }
  20. //创建ModelAndView对象
  21. ModelAndView mv = new ModelAndView();
  22. mv.addObject("msg", e.getMsg());
  23. mv.setViewName("exception");
  24. return mv;
  25. }
  26. }

  2.2 配置异常处理器

  springmvc.xml中配置:

  1. <!--配置异常处理器:自定义的异常处理器-->
  2. <bean id="sysExceptionResolve" class="com.llb.exception.SysExceptionResolve"></bean>

  2.3 运行结果

  1685989-20190822115420321-1591813745.png


源码:github

转载于:https://www.cnblogs.com/liulebin/p/11393593.html

发表评论

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

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

相关阅读

    相关 SpringMVC 异常处理

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

    相关 SpringMVC处理异常

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

    相关 springMVC异常处理

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

    相关 SpringMVC异常处理

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

    相关 SpringMVC 异常处理

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