SpringMvc---异常处理

SpringMvc---异常处理

介绍

SringMvc提供了异常处理机制,相当于是Web阶段学习的异常处理跳转至指定页面。在SpringMvc中可以在配置文件中注册SimpleMappingExceptionResolver指定在出现什么异常就跳转到指定页面。

使用(配置文件)

首先注册SimpleMappingExceptionResolver,使用property标签为属性exceptionMappings【错误映射注入】,在里面用pros标签里的pro标签声明每一个可能碰见的错误的类型以及返回的视图名。

pro标签中 key值是可能出现的错误,标签对之间是返回的视图名,视图自己建,不写前缀就是视图控制器中的前缀,写了前缀就会去指定的前缀目录下找。

再使用一个property标签将错误的内容装进请求域中,在页面返回错误信息

    <!--配置SpringMvc的异常处理-->
    <bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
        <property name="exceptionMappings">
            <props>
                <prop key="java.lang.ArithmeticException">error</prop>
            </props>
        </property>
<!--将错误信息保存到请求域中,value是key-->
        <property name="exceptionAttribute" value="ex"></property>
    </bean>

 

 

html页面中

<body>
出错了
<p th:text="${ex}"></p>
<a th:href="@{/}">返回首页</a>
</body>

 

 

使用(基于注解)

使用@ControllerAdvice注解生命异常处理类,在类中用@ExceptionHandler注解声明处理异常的方法,注解的参数就是可能出现的class类型的异常,最后返回视图名。

实际上也是一个controller

//使用@ControllerAdvice注解标识一个类,声明这个类是异常处理类
@ControllerAdvice
public class ExceptionController {
​
//    标注异常处理器的处理方法,里面的参数是可能出现的class类型的异常
    @ExceptionHandler({ArithmeticException.class,NullPointerException.class})
    public String testException(Model model,Exception e){
        model.addAttribute("ex",e);
        return "error";
    }
​
}
 

 

 

 

 

 

 

 

 

posted @ 2021-11-24 22:17  优质水  阅读(52)  评论(0)    收藏  举报