SpringMVC中的异常处理器

12异常处理器

12.1基于配置的异常处理

HandlerExceptionResolver接口

接口实现类:

DefaultHandlerExceptionResolver和 SimpleMappingExceptionResolver

SpringMVC提供了自定义的异常处理器SimpleMappingExceptionResolver

使用方法:

直接在springmvc中声明使用

<bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
    <property name="exceptionMappings">
        <props>
            <!--
            key: 异常的类型
            value: 映射到视图的名称
            -->
            <prop key="java.lang.ArithmeticException">error</prop>
            <prop key="java.lang.NullPointerException">error</prop>
            <prop key="java.lang.RuntimeException">error</prop>
            <prop key="java.lang.Exception">error</prop>
        </props>
    </property>
    <property name="exceptionAttribute" value="ex"/>
</bean>

当程序运行时出现上面所声明的异常类型时,就会执行那个异常所对应的视图页面,如java.lang.ArithmeticException就会跳转到error页面

12.2基于注解的异常处理

需要书写异常的配置类

/**
 * @ControllerAdvice 1.全局异常处理
 */
@ControllerAdvice
public class ExceptionController {

    @ExceptionHandler(ArithmeticException.class)
    public String handleException(Throwable ex, Model model) {
        // ex表示控制器所出现的异常
        model.addAttribute("ex", ex);
        return "error";
        
    }
}

上面的类上使用了@ControllerAdvice注解,该注解是声明处理全局异常的,同时对于单个方法上使用了@ExceptionHandler注解,是用来声明具体的异常类型,然后用下面的方法来处理该异常。

posted @ 2024-06-30 09:12  ning12  阅读(3)  评论(0编辑  收藏  举报