zoukankan      html  css  js  c++  java
  • 9、SpringMVC异常处理解决方案

    1、自定义异常类

    /**
     * 自定义异常类
     */
    public class SysException extends Exception{
        //存储提示信息
        private String message;
    
        public SysException(String message) {
            this.message = message;
        }
    
        @Override
        public String getMessage() {
            return message;
        }
    
        public void setMessage(String message) {
            this.message = message;
        }
    }
    

    2、处理异常业务逻辑

    public class SysExceptionResolver implements HandlerExceptionResolver{
        /**
         * 处理异常业务逻辑
         * @param httpServletRequest
         * @param httpServletResponse
         * @param o
         * @param ex
         * @return
         */
        @Override
        public ModelAndView resolveException(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception ex) {
    
            //获取到异常对象
            SysException e = null;
            if(ex instanceof SysException){
                e = (SysException)ex;
            }else{
                e = new SysException("系统正在维护");
            }
    
            //创建ModelAndView对象
            ModelAndView mv = new ModelAndView();
            mv.addObject("errorMsg", e.getMessage());
    
            mv.setViewName("error");
            return mv;
        }
    }
    

    3、配置异常处理器

    <!--配置异常处理器-->
        <bean id="sysExceptionResolver" class="com.example.exception.SysExceptionResolver"></bean>
    

    4、请求页

    <a href="testException">异常处理</a>
    

    5、控制器

    @Controller
    public class UserController {
        @RequestMapping("/testException")
        public String testException() throws SysException {
    
            try {
                //模拟异常
                int i= 10/0;
            } catch (Exception e) {
                //打印异常信息
                e.printStackTrace();
                //抛出自定义异常信息
                throw new SysException("分母不能为零");
            }
            return "success";
        }
    }
    

    6、错误页面

    <%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
    <html>
    <head>
        <title>Title</title>
    </head>
    <body>
        ${errorMsg}
    </body>
    </html>
    

    解析

  • 相关阅读:
    C# 读写 ini 配置文件
    [转]VB 读写ini 配置文件
    js实现隔行变色-------Day40
    Camel Games借助AWS在爆发式增长中提供优质游戏体验
    深入浅出--UNIX多进程编程之fork()函数
    【玩转微信公众平台之八】 演示样例代码分析
    jQuery 选择具有特殊属性的元素
    下载超星或读秀图书时,怎么搞定完整书签?
    意外的php之学习笔记
    POJ 1182 (经典食物链 /并查集扩展)
  • 原文地址:https://www.cnblogs.com/Ryuichi/p/13388083.html
Copyright © 2011-2022 走看看