文章目录
- 12异常处理器
- 12.1基于配置的异常处理
- HandlerExceptionResolver接口
- 直接在springmvc中声明使用
- 12.2基于注解的异常处理
- 需要书写异常的配置类
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";}
}
ex);
return “error”;
}
}
**上面的类上使用了@ControllerAdvice注解,该注解是声明处理全局异常的,同时对于单个方法上使用了@ExceptionHandler注解,是用来声明具体的异常类型,然后用下面的方法来处理该异常。**