`
Adan-Chiu
  • 浏览: 21658 次
社区版块
存档分类
最新评论

SpringMVC 处理异常

 
阅读更多

处理异常

        控制器的通知注解@ExceptionHandler可以处理异常,此外,spring mvc还提供了其他的异常处理机制,使用它们可以获取更为精确的信息,从而为定位问题带来方便。在默认情况下,spring会将自身产生的异常转换为合适的状态码,通过这些状态码可以进一步确定异常发生的原因,以便找到对应的问题。

                              spring中部分异常默认映射码

Spring异常 HTTP状态码
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 异常处理示例

    springmvc异常处理的博文如下: http://blog.csdn.net/dlf123321/article/details/50756003

    SpringMVC 异常处理-2021-04-11.txt

    异常一层一层的向上抛出,但是开发人员肯定不想要用户看到代码出错,因此需要将异常屏蔽了,SpringMVC提供了异常处理的手段。

    SSM笔记-SpringMVC的异常处理

    SSM笔记-SpringMVC的异常处理,包含了ExceptionHandler注解、ResponseStatusExceptionResolver、DefaultHandlerExceptionResolver、SimpleMappingExceptionResolver的使用和试验

    springmvc异常处理demo.zip

    SpringMVC中异常处理机制,简单案例,里面有详细说明以及博客说明。

    springmvc返回json的全局异常统一处理demo

    springmvc返回json的全局异常统一处理demo,有问题可以留言。

    12SpringMVC异常处理.md

    12SpringMVC异常处理.md

    springMVC统一异常处理.mp4

    本视频针对博客内容,讲解springMVC框架中的统一异常处理的知识点和实例,以及500错误和404错误异常处理上的区别,简单易懂,言简意赅。

    springMVC3学习(八)--全局的异常处理(源码)

    springMVC3学习(八)--全局的异常处理(源码) 文章地址:http://blog.csdn.net/itmyhome1990/article/details/26286435

    Beatles9527#StudyNotes#_6SpringMVC全局异常处理1

    SpringMVC处理全局异常在使用Shiro权限控制框架后,如果使用注解在Controller控制访问的角色,如果权限不足,就会抛出Authorization

    Maven+SpringMVC实现统一异常处理

    同时,我们还需要配置HandlerExceptionResolver来处理异常。 ```xml &lt;!-- 配置错误页面 --&gt; &lt;prop key="java.lang.Exception"&gt;error/500 &lt;prop key="java.lang.Throwable"&gt;error/500 ``` 3. ...

    SpringMVC上传下载异常处理

    本文档主要介绍了SpringMVC的ModelAndView机制,使用SpringMVC实现文件上传,下载以及全局异常处理机制

    spingmvc+mybatis+统一异常处理机制

    采用springmvc+mybatis,搭建部分大致跟网上其他资料差不多,唯一不同的加入了统一错误处理,为了方便开发人员开发,所有错误码用一张表存在数据库中,然后由应用将整表缓存,缓存采用的spring自带的cache,开发中...

    sunc-GitHub#springmvc#异常处理1

    1. SimpleMappingExceptionResolver类 1.配置文件springmvc.xml 1.在后端抛出异常对象,例如 2.SimpleMa

    SpringMVC 中的拦截器与异常处理

    在SpringMVC框架中,拦截器(Interceptor)和异常处理是两个重要的概念,它们对于构建健壮、可维护的Web应用程序至关重要。本文将深入探讨这两个主题,并解释它们如何协同工作以提升应用性能和用户体验。 首先,让...

    SpringMVC统一异常处理实例代码

    SpringMVC统一异常处理实例代码 本文主要介绍了SpringMVC统一异常处理实例代码,通过示例代码详细介绍了统一异常处理的方法,对大家的学习或者工作具有一定的参考学习价值。 在项目中,异常处理是一个非常重要的...

    SpringMVC-13 异常处理

    SpringMVC通过HandlerExceptionResolver接口来处理程序的异常,包括Handler映射、数据绑定和目标方法执行时发生的异常。 主要测试HandlerExceptionResolver的具体实现类的具体用法

    Springmvc自定义异常处理器实现流程解析

    本文中,我们详细介绍了Springmvc自定义异常处理器的实现流程,包括自定义异常类、自定义异常处理器、springmvc.xml配置、定制错误页面和测试异常处理等步骤,这些步骤对于学习和工作具有重要的参考价值。

    springmvc如何进行异常处理

    在 Spring MVC 中,我们可以在控制器类中使用 @ExceptionHandler 注解来处理异常。例如: ```java @ExceptionHandler public ModelAndView error(Exception exception) { ModelAndView mv = new ModelAndView(); ...

    三. spring mvc 异常统一处理

    NULL 博文链接:https://gaojiewyh.iteye.com/blog/1297746

Global site tag (gtag.js) - Google Analytics