千家信息网

spring mvc中如何处理异常

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,这篇文章主要为大家展示了"spring mvc中如何处理异常",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"spring mvc中如何处理异常"这篇文章吧。
千家信息网最后更新 2026年10月31日spring mvc中如何处理异常

这篇文章主要为大家展示了"spring mvc中如何处理异常",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"spring mvc中如何处理异常"这篇文章吧。

spring mvc中的404:

1.mappedHandler找不到

response.sendError(HttpServletResponse.SC_NOT_FOUND);

spring mvc异常机制

1.mappedHandler找不到 并且throwExceptionIfNoHandlerFound设定为true

throwExceptionIfNoHandlerFound

source:

                             if (this.throwExceptionIfNoHandlerFound) {                                        throw new NoHandlerFoundException(request.getMethod(), getRequestUri(request),                                                        new ServletServerHttpRequest(request).getHeaders());                                }                                else {                                        response.sendError(HttpServletResponse.SC_NOT_FOUND);                                }

config:

web.xml的配置Dispatcher的此参数为true

                                                                                  throwExceptionIfNoHandlerFound                                                true                                        

2.判断返回视图层之前是否发生了异常,主要有两种HandlerExceptionResolver、ModelAndViewDefiningException

3.如没有异常,则进行视图渲染

通过viewResolver找出相应的view,进行具体的模板渲染

通过不同的View实现AbstractView的renderMergedOutputModel方法

Exception if there's a problem rendering the view

如果ViewResolver匹配不到对应的View,则抛出ServletException

ServletException:if view is missing or cannot be resolved

spring mvc 异常处理

1.HandlerExceptionResolver

只能处理请求过程中抛出的异常

不处理异常处理本身所抛出的异常和视图解析过程中抛出的异常

2.@ControllerAdvice的@ExceptionHandler注解

3.1和2只能处理view之前的异常,如果是视图层渲染异常,需要另行处理

一.利用filter,捕获除了1和2之外的异常

                        public class ErrorHandlerFilter implements Filter {                          ErrorHandler errorHandler;                          @Override                          public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) throws IOException, ServletException {                                try {                                  filterChain.doFilter(request, response);                                } catch (Exception ex) {                                  // call ErrorHandler and dispatch to error jsp                                  String errorMessage = errorHandler.handle(request, response, ex);                                  request.setAttribute("errorMessage", errorMessage);                                  request.getRequestDispatcher("/WEB-INF/jsp/error/dispatch-error.jsp").forward(request, response);                                }                          @Override                          public void init(FilterConfig filterConfig) throws ServletException {                                errorHandler = (ErrorHandler) WebApplicationContextUtils                                  .getRequiredWebApplicationContext(filterConfig.getServletContext())                                  .getBean("defaultErrorHandler");                          }                          // ...                        }

二.从写dispatchServlet再doservice时候捕获异常

                 public class DispatcherServletHandler extends DispatcherServlet {                                private static final String ERROR = "error";                                private static final String VIEW_ERROR_PAGE = "/WEB-INF/views/error/view-error.jsp";                                @Override                                protected void doService(HttpServletRequest request, HttpServletResponse response) throws Exception {                                        try{                                                super.doService(request, response);                                        } catch(Exception ex) {                                                request.setAttribute(ERROR, ex);                                                request.getRequestDispatcher(VIEW_ERROR_PAGE).forward(request, response);                                        }                                 }                        }

以上是"spring mvc中如何处理异常"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

处理 视图 内容 篇文章 过程 学习 帮助 不同 参数 方法 时候 易懂 更多 机制 条理 模板 注解 知识 编带 行业 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 美国互联网科技巨头监管 互联网金融与金融科技 易互联网科技有限公司 互联网与新科技 互联网科技视频 浩特互联网科技 互联网科技汛 丰台科技园 互联网公司 江苏南京365互联网科技 受益于互联网科技的高速发展 厦门千工互联网科技有限公司 语蝶互联网科技有限公司 米聚互联网科技南京有限公司排面 互联网科技圈年度人物 新氧科技和美国互联网有关系吗 兰石爱特工业互联网科技分公司 求路客互联网科技电话 山东蛋芒互联网科技有限公司 平安好医生打造互联网科技医疗 承德科技产业互联网平台 深圳科技互联网 狮子座互联网科技 太原新华互联网科技学校怎么样 互联网科技教育视频 哈尔滨屹滨互联网科技有限公司 云鲸互联网络科技有限公司 科技和互联网行业的特点 科技互联网专业务虚会材料 承德科技产业互联网平台 互联网企业和网络科技有限公司
0