SpringMVC中的异常处理
来源:互联网 发布:bp神经网络的java实现 编辑:程序博客网 时间:2024/06/02 06:57
Spring提供了多种方式将异常转换为特定的响应:
- 特定的Spring异常会自动映射为指定的HTTP响应状态码,如下面的表1所示。
- 抛出自定义异常并在异常类上可以添加@ResponseStatus注解,将异常映射为某一种状态码,然后再通过配置专门的错误页(可以在web.xml中使用<error-page>标签进行配置)进行处理,如下面的代码1所示。
- 在Controller中添加一个或多个用于处理异常的方法并在方法上用@ExceptionHandler加以注解,并指明该方法可以处理的异常类型,该方法可以返回错误视图的视图名或者返回ModelAndView对象,如下面代码2所示。
- 如果多个控制器有公共的异常需要统一处理,那么可以通过@ControllerAdvice为控制器写一个处理异常的Advice,如下面代码3所示。
表1 Spring默认异常对应的HTTP响应状态码
代码1 使用@ResponseStatus注解将异常映射为响应状态码
@ResponseStatus(code = HttpStatus.NOT_FOUND, reason = "没有这样的员工")public class NoSuchEmployeeException extends RuntimeException { // ...}
<web-app> <!-- ... --> <error-page> <error-code>404</error-code> <location>/404.html</location> </error-page></web-app>
代码2 使用@ExceptionHandler指定处理异常的方法和异常类型
@Controllerpublic class EmpController { @ExceptionHandler(java.lang.Exception.class) public String handleRE(Model model, Exception ex) { model.addAttribute("hint", ex.getMessage()); return "error"; } // ...}
代码3 定义专门用于异常处理的Advice
@ControllerAdvicepublic class ControllerExceptionAdvice { @ExceptionHandler(java.lang.Exception.class) public ModelAndView handleRE(Model model, Exception ex) { ModelAndView mav = new ModelAndView("error"); mav.addObject("hint", ex.getMessage()); return mav; }}
使用Spring提供这几种声明式异常处理,Web项目中的异常处理就变得so easy了!
阅读全文
2 0
- SpringMVC中的异常处理
- SpringMVC中的异常处理
- SpringMVC中的异常处理
- SpringMVC 中的异常处理
- SpringMVC中的异常处理
- SpringMVC中的异常处理
- SpringMVC中的异常处理
- SpringMVC中的统一异常处理
- SpringMvc中的异常处理ExceptionHandlerExceptionResolver的使用
- Springmvc异常处理【Springmvc】
- 【SpringMVC学习07】SpringMVC中的统一异常处理
- 【SpringMVC学习07】SpringMVC中的统一异常处理
- springMVC异常处理
- springmvc 异常处理
- springMVC 全局异常处理
- springMVC之异常处理
- SpringMVC的异常处理
- SpringMVC异常处理
- 菜鸟先飞之JAVA_String类
- 世界排名前100的古典音乐榜单
- NYOJ 915 +-字符串
- 关于华为手机自定义view中NavigationBar显示与隐藏造成高度问题的解决办法
- 称不上项目的小程序3:计算器
- SpringMVC中的异常处理
- 17暑假多校联赛4.9 HDU 6075 Questionnaire
- wireshark的简单使用
- Docker基础教程(6)进阶命令-3-分享你的镜像
- C++ STL 之 vector
- struts2的API
- [72000][1653] ORA-01653: 表 ***无法通过 128 (在表空间 **中) 扩展 ORA-06512: 在 "****", line 8
- 数字三角形(数塔) DP入门
- 最大连续bit数