SpringMVC异常处理使用@ControllerAdvice注释
2017-08-14 16:39
363 查看
Spring MVC提供了处理异常和错误的好方法。@ExceptionHandler注释是此功能的核心。对于每个Spring控制器,我们可以简单地定义一个方法,如果给定的异常发生,它将自动调用。例如:
因此,每当从任何控制器方法引发IOException时,将调用上述方法
这个注释的一个缺点是,它只处理从被定义的控制器引发的异常,不会处理从其他控制器引发的异常。
这个注解用来定义
因此,如果我们在
值得注意的一点是,Spring配置必须定义mvc命名空间才能识别
如果已经定义了
4000
import org.springframework.web.bind.annotation.ExceptionHandler; //.. @ExceptionHandler(IOException.class) public String exception(Exception e) { //.. return "error"; }
因此,每当从任何控制器方法引发IOException时,将调用上述方法
exception()。我们使用
@ExceptionHandler注释将
IOException.class映射到此方法。
这个注释的一个缺点是,它只处理从被定义的控制器引发的异常,不会处理从其他控制器引发的异常。
这个注解用来定义
@ExceptionHandler,
@InitBinder以及
@ModelAttribute适用于所有
@RequestMapping方法的方法。
import org.springframework.web.bind.annotation.ControllerAdvice; //.. @ControllerAdvice public class ExceptionControllerAdvice { @ExceptionHandler(Exception.class) public String exception(Exception e) { return "error"; } }
因此,如果我们在
@ControllerAdvice类中定义了
@ExceptionHandler方法的注释,它将被应用于所有控制器。
值得注意的一点是,Spring配置必须定义mvc命名空间才能识别
@ControllerAdvice注释。因此,必须在
spring-servlet.xml文件中定义以下内容。
<mvc:annotation-driven/>
如果已经定义了
<context:annotation-config />它将不起作用。
@ControllerAdvice将不会被加载。所以永远记得在Spring配置中使用
<mvc:annotation-driven/>。
4000
相关文章推荐
- 使用桌面窗口管理器创建Aero玻璃效果
- IIS无法使用
- ASP.NET AJAX入门系列(5):使用UpdatePanel控件(二)
- Symbian中HBufC的使用
- [转发]在 Java Web 项目中选择使用 Slf4J 通用日志框架
- (转)Java并发编程:线程池的使用方法
- [授权发表]使用 JDB 调试 Android 应用程序
- jquery基本选择器的使用
- 怎样使用 Python 来判断一个路径是否存在判断一个路径是文件还是目录
- 企业级监控 Zabbix 的安装与使用
- Python 使用threading+Queue实现线程池
- 关于AnsiSting的使用大全(转自ChinaBCB)
- DVWA的使用2–CSRF(跨站请求伪造)
- 使用PHP维护文件系统
- RAID原理及其使用方法
- 编写一个主函数 main,使用两个值作为实参,并输出它们的和。
- 微软图表控件MsChart使用初探
- 如何使用TestFlight测试iOS应用
- LINUX下多路径(multi-path)介绍及使用
- S2SH使用OpenSessionInViewFilter出现InvalidDataAccessApiUsageException