处理异常
控制器的通知注解@ExceptionHandler可以处理异常,此外,spring mvc还提供了其他的异常处理机制,使用它们可以获取更为精确的信息,从而为定位问题带来方便。在默认情况下,spring会将自身产生的异常转换为合适的状态码,通过这些状态码可以进一步确定异常发生的原因,以便找到对应的问题。
spring中部分异常默认映射码
BindException | 400 - Bad Request |
ConversionNotSupportedException | 500 - Internal Server Error |
HttpMediaTypeNotAcceptableException | 406 - Not Acceptable |
HttpMediaTypeNotSupportedException | 415 - Unsupported Media Type |
HttpMessageNotReadableException | 400 - Bad Request |
HttpMessageNotWritableException | 500 - Internal Server Error |
HttpRequestMethodNotSupportedException | 405 - Method Not Allowed |
MethodArgumentNotValidException | 400 - Bad Request |
MissingServletRequestParameterException | 400 - Bad Request |
MissingServletRequesPartException | 400 - Bad Request |
NoSuchRequestHandlingMethodException | 404 - Not Found |
TypeMismatchException | 400 - Bad Request |
有时候可以自定义一些异常,比如定义一个找不到角色异常
@ResponseStatus(code = HttpStatus.NOT_FOUND, reason = "找不到角色信息异常") public class RoleException extends RuntimeException { // ... }通过注解@ResponseStatus将异常映射为某一种状态码,通过配置reason可以了解配置产生异常的原因。
- 处理方式一:通过配置专门的错误页(可以在web.xml中使用<error-page>标签进行配置)进行处理
<web-app> <error-page> <error-code>404</error-code> <location>/404.html</location> </error-page> </web-app>
- 处理方式二: 在Controller中添加一个或多个用于处理异常的方法并在方法上用@ExceptionHandler加以注解,并指明该方法可以处理的异常类型,该方法可以返回错误视图的视图名或者返回ModelAndView对象
@Controller public class RoleController { //当前控制器发生RoleException异常时,进入该方法 @ExceptionHandler(RoleException.class) public String handleRoleException(Model model, RoleException ex) { model.addAttribute("hint", ex.getMessage()); //返回指定的页面,避免不友好 return "error"; } }
- 处理方式三:多个控制器有公共的异常需要统一处理,那么可以通过@ControllerAdvice为控制器写一个处理异常的Advice
@ControllerAdvice public class ControllerExceptionAdvice { @ExceptionHandler(RoleException.class) public ModelAndView handleRE(Model model, RoleException ex) { ModelAndView mav = new ModelAndView("error"); mav.addObject("hint", ex.getMessage()); return mav; } }
相关推荐
springmvc异常处理的博文如下: http://blog.csdn.net/dlf123321/article/details/50756003
异常一层一层的向上抛出,但是开发人员肯定不想要用户看到代码出错,因此需要将异常屏蔽了,SpringMVC提供了异常处理的手段。
SSM笔记-SpringMVC的异常处理,包含了ExceptionHandler注解、ResponseStatusExceptionResolver、DefaultHandlerExceptionResolver、SimpleMappingExceptionResolver的使用和试验
SpringMVC中异常处理机制,简单案例,里面有详细说明以及博客说明。
springmvc返回json的全局异常统一处理demo,有问题可以留言。
12SpringMVC异常处理.md
本视频针对博客内容,讲解springMVC框架中的统一异常处理的知识点和实例,以及500错误和404错误异常处理上的区别,简单易懂,言简意赅。
springMVC3学习(八)--全局的异常处理(源码) 文章地址:http://blog.csdn.net/itmyhome1990/article/details/26286435
SpringMVC处理全局异常在使用Shiro权限控制框架后,如果使用注解在Controller控制访问的角色,如果权限不足,就会抛出Authorization
同时,我们还需要配置HandlerExceptionResolver来处理异常。 ```xml <!-- 配置错误页面 --> <prop key="java.lang.Exception">error/500 <prop key="java.lang.Throwable">error/500 ``` 3. ...
本文档主要介绍了SpringMVC的ModelAndView机制,使用SpringMVC实现文件上传,下载以及全局异常处理机制
采用springmvc+mybatis,搭建部分大致跟网上其他资料差不多,唯一不同的加入了统一错误处理,为了方便开发人员开发,所有错误码用一张表存在数据库中,然后由应用将整表缓存,缓存采用的spring自带的cache,开发中...
1. SimpleMappingExceptionResolver类 1.配置文件springmvc.xml 1.在后端抛出异常对象,例如 2.SimpleMa
在SpringMVC框架中,拦截器(Interceptor)和异常处理是两个重要的概念,它们对于构建健壮、可维护的Web应用程序至关重要。本文将深入探讨这两个主题,并解释它们如何协同工作以提升应用性能和用户体验。 首先,让...
SpringMVC统一异常处理实例代码 本文主要介绍了SpringMVC统一异常处理实例代码,通过示例代码详细介绍了统一异常处理的方法,对大家的学习或者工作具有一定的参考学习价值。 在项目中,异常处理是一个非常重要的...
SpringMVC通过HandlerExceptionResolver接口来处理程序的异常,包括Handler映射、数据绑定和目标方法执行时发生的异常。 主要测试HandlerExceptionResolver的具体实现类的具体用法
本文中,我们详细介绍了Springmvc自定义异常处理器的实现流程,包括自定义异常类、自定义异常处理器、springmvc.xml配置、定制错误页面和测试异常处理等步骤,这些步骤对于学习和工作具有重要的参考价值。
在 Spring MVC 中,我们可以在控制器类中使用 @ExceptionHandler 注解来处理异常。例如: ```java @ExceptionHandler public ModelAndView error(Exception exception) { ModelAndView mv = new ModelAndView(); ...
NULL 博文链接:https://gaojiewyh.iteye.com/blog/1297746