`
cargoj
  • 浏览: 59237 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

springmvc ajax全局异常处理

阅读更多

我转载的这里:http://www.baeldung.com/2013/01/31/exception-handling-for-rest-with-spring-3-2/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+Baeldung+%28baeldung%29

原文讲的是rest风格中的异常处理,不过通用性也不错。

 

 

2. Via Controller level @ExceptionHandler

Defining a Controller level method annotated with @ExceptionHandler is very easy:

 

public class FooController{
    ...
    @ExceptionHandler({ CustomException1.class, CustomException2.class })
    public void handleException() {
        //
    }
}

作为base controller继承,有一个限制就是你的controller可能必须继承其他类。

 

3. Via HandlerExceptionResolver

分别介绍了

3.1 spring3.1版本的ExceptionHandlerExceptionResolver,实际@ExceptionHandler就是靠它实现的。

3.2 spring3.0版本的DefaultHandlerExceptionResolver,ResponseStatusExceptionResolver。限制在于无法控制response body。

3.3 

SimpleMappingExceptionResolver and AnnotationMethodHandlerExceptionResolver

前者是异常与VIEW的映射,跟AJAX异常没什么关系,后者在3.2中已经被ExceptionHandlerExceptionResolver取代。

3.4 

Custom HandlerExceptionResolver

自己实现异常处理,我只是做测试,实际要根据需要来写。直接继承了SimpleMappingExceptionResolver在其中判断如果header是application/json就只是简单设置status为500,前台extjs ajax 在头中用application/json覆盖默认设置,后台出现异常会进入failure。

4. Via new @ControllerAdvice (Spring 3.2 Only)

@ControllerAdvice
public class RestResponseEntityExceptionHandler extends ResponseEntityExceptionHandler {
    @ExceptionHandler(value = { IllegalArgumentException.class, IllegalStateException.class })
    protected ResponseEntity<Object> handleConflict(RuntimeException ex, WebRequest request) {
        String bodyOfResponse = "This should be application specific";
        return handleExceptionInternal(ex, bodyOfResponse,
          new HttpHeaders(), HttpStatus.CONFLICT, request);
    }
}

 推荐的3.2版本新方式。

 

分享到:
评论
1 楼 liuweihug 2014-04-08  
Http请求状态及jquery ajax请求异常处理 - 前端编程 - IT工作生活这点事。Just Such So!
http://www.suchso.com/UIweb/httpstatusjqueryajaxerrordeal.html

相关推荐

    springMVC+ajax+json

    在这个例子中,`MyData`对象会被序列化成JSON并发送回客户端,客户端的Ajax回调函数可以接收到这个JSON对象并进行处理。 总结来说,Spring MVC提供了一个强大的后端框架,Ajax实现了页面的异步更新,而JSON则作为...

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

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

    SpringMVC(八)处理AJAX请求

    Spring MVC提供全局异常处理器,可以通过`@ExceptionHandler`注解来捕获特定异常,并返回自定义的JSON或XML响应。 6. **状态码和头信息** 在处理AJAX请求时,状态码和HTTP头信息也很重要。例如,设置合适的HTTP...

    SpringMVC框架架构介绍

    通过定义@ControllerAdvice和@ExceptionHandler注解,可以实现全局异常处理,捕获并处理所有Controller中的未捕获异常。 七、记录异常到日志: 结合日志框架(如Log4j或SLF4J),在全局异常处理中记录异常信息。 ...

    SpringMVC后台

    SpringMVC提供了全局异常处理机制,可以通过@ControllerAdvice和@ExceptionHandler注解定义全局异常处理器。 10. **数据验证**: SpringMVC集成了JSR 303/349 Bean Validation,可以对表单提交的数据进行验证。 ...

    springmvc实战项目sample

    可以通过`@ExceptionHandler`注解自定义全局异常处理,或者配置`&lt;exception-type&gt;`标签处理特定异常。 7. **视图技术** SpringMVC支持多种视图技术,如JSP、FreeMarker、Thymeleaf等,可以根据项目需求选择合适的...

    SpringMVC是Spring家族的一款专注于解决控制器层问题的框架技术,学习资料第二天

    本篇文章将对 SpringMVC 的数据管理、Ajax 交互、文件上传、下载、验证码、拦截器实现和全局异常处理等方面的知识点进行详细的解释。 一、SpringMVC 数据管理 在 SpringMVC 中,数据管理是通过 Model 机制和 ...

    springMVC 教程

    SpringMVC提供了强大的全局异常处理机制。教程将讲解如何使用@ControllerAdvice和@ExceptionHandler来实现全局异常处理,并将异常记录到日志中。 JUnit单元测试是保证代码质量的重要工具。本教程将指导如何对...

    SpringMVC3+jsp

    - 可以使用`@ExceptionHandler`注解定义异常处理器,或者配置`&lt;exception-type&gt;`元素来全局处理异常。 - `@ControllerAdvice`注解可以创建一个全局的异常处理器,应用于所有Controller。 6. **视图层增强**: - ...

    SpringMVC.pdf

    至于异常处理,SpringMVC允许开发者使用@ControllerAdvice注解创建全局异常处理器,以简化异常的捕获和处理逻辑。 在实际应用中,拦截器可以拦截客户端请求,执行一些通用的预处理和后处理操作,比如进行权限验证、...

    跟开涛学SpringMVC-高清版

    9. **异常处理**:学习如何使用`@ExceptionHandler`处理异常,以及全局异常处理类的配置。 10. **拦截器(Interceptor)**:理解拦截器的工作原理,如何自定义拦截器以实现登录验证、日志记录等功能。 11. **...

    springMVC快速入门 深入分析

    全局异常处理是SpringMVC提供的一项非常实用的功能。通过@ControllerAdvice注解定义一个全局异常处理器,可以捕获控制器抛出的异常,并根据异常类型做出不同的响应。这种处理方式可以避免异常传播到前端页面,从而...

    SpringMVC相关jar包

    - 可以通过`@ExceptionHandler`注解定义全局或特定类型的异常处理器,提高代码的可读性和维护性。 5. **拦截器**: - `HandlerInterceptor`接口定义了拦截器,可以在请求处理前后进行自定义逻辑,比如权限验证、...

    SpringMvc学习文档(教程)

    异常处理是任何应用程序中非常重要的部分,Spring MVC允许开发者通过配置来实现全局异常处理。开发者可以通过@ControllerAdvice注解和@ExceptionHandler注解来定义全局异常处理器,从而捕获和处理控制器中抛出的异常...

    尚硅谷SpringMVC视频

    - 捕获和处理异常,使用@ControllerAdvice和@ExceptionHandler全局处理异常。 - 定义错误页面,提供友好的用户体验。 7. **国际化与本地化** - 使用LocaleResolver和MessageSource支持多语言环境。 8. **上传...

    SpringMVC入门教程

    十一、 spring mvc 如何实现全局的异常处理 十二、 spring mvc 如何把全局异常记录到日志中 十三、 如何给spring3 MVC中的Action做JUnit单元测试 十四、 spring mvc 转发与重定向 (带参数重定向) 十五、 spring ...

    springMvc解说

    同时,SpringMVC也支持全局异常处理,使得开发者可以集中处理应用中出现的异常情况。 9. 测试支持:SpringMVC支持JUnit测试,允许开发者编写针对Action的单元测试,确保代码的质量。 10. Ajax请求处理:SpringMVC...

    springmvc 3.2.8 restful支持

    8. **异常处理**:Spring MVC提供了全局异常处理机制,通过`@ControllerAdvice`和`@ExceptionHandler`注解,可以集中处理异常并返回自定义的错误响应。 在实际开发中,结合以上知识,我们可以构建一个完整的RESTful...

    SpringMVC项目DOE

    5. **异常处理**:通过@ControllerAdvice和@ExceptionHandler,可以全局统一处理异常,提供更好的用户体验。 6. **视图技术**:SpringMVC可以与各种视图技术结合,如JSP、FreeMarker、Thymeleaf等。视图解析器(如...

    springMvc学习参考资料

    13. **异常处理**:Spring MVC支持全局异常处理,通过@ControllerAdvice和@ExceptionHandler注解可以捕获并处理特定的运行时异常。 14. **数据绑定和验证**:Spring MVC支持自动将请求参数绑定到Controller方法的...

Global site tag (gtag.js) - Google Analytics