@ExceptionHandler

@Controller
public class AccessController {  

    /**
     * 异常页面控制
     *
     * @param runtimeException
     * @return
     */
    @ExceptionHandler(RuntimeException.class)
    public @ResponseBody
    Map<String,Object> runtimeExceptionHandler(RuntimeException runtimeException) {
        logger.error(runtimeException.getLocalizedMessage());  

        Map model = new TreeMap();
        model.put("status", false);
        return model;
    }  

}  

当这个Controller中任何一个方法发生异常,一定会被这个方法拦截到。然后,输出日志。封装Map并返回,页面上得到status为false。就这么简单。

或者这个有些有些复杂,来个简单易懂的,上代码:

@Controller
public class AccessController {
    /**
     * 异常页面控制
     *
     * @param runtimeException
     * @return
     */
    @ExceptionHandler(RuntimeException.class)
    public String runtimeExceptionHandler(RuntimeException runtimeException,
            ModelMap modelMap) {
        logger.error(runtimeException.getLocalizedMessage());  

        modelMap.put("status", IntegralConstant.FAIL_STATUS);
        return "exception";
    }
}  
时间: 2024-10-06 06:57:15

@ExceptionHandler的相关文章

用@ExceptionHandler 来进行异常处理

有时候我们想统一处理一个Controller中抛出的异常怎么搞呢? 直接在Controller里面加上用@ExceptionHandler标注一个处理异常的方法像下面这样子 @ExceptionHandler(MissingServletRequestParameterException.class) @ResponseStatus(HttpStatus.BAD_REQUEST) public void processMethod(MissingServletRequestParameterEx

Spring 注解 @ExceptionHandler

Spring 注解学习手札(一) 构建简略Web使用 Spring 注解学习手札(二) 操控层整理 Spring 注解学习手札(三) 表单页面处置 Spring 注解学习手札(四) 持久层分析 Spring 注解学习手札(五) 事务层事务处置 Spring 注解学习手札(六) 测验 Spring 注解学习手札(七) 补遗--@ResponseBody,@RequestBody,@PathVariable Spring 注解学习手札(八) 补遗--@ExceptionHandler 直接上代码:

spring @ExceptionHandler注解方式实现异常统一处理

首先,在我们的工程中新建BaseController父类,内容如下: package com.ztesoft.zsmartcity.framework.exception; import java.io.IOException;import java.io.PrintWriter;import java.io.StringWriter;import java.util.Date;import javax.servlet.ServletException;import javax.servlet.

springmvc 全局的异常拦截处理 @ControllerAdvice注解 @ExceptionHandler

第一步: Dispatcher前端控制器的源码中 默认的 private boolean throwExceptionIfNoHandlerFound = false;说明如果没有找到匹配的执行器,不会抛出Handler未找到异常,所以404的异常要捕获到的话就要将此属性改为true 可以采用 web.xml的配置Dispatcher的此参数为true  具体配置参数,请百度,这里不细说 第二步:新建一个类,在此类上添加@ControllerAdvice注解,意思是控制器增强的意思,该注解可以被

[AngularJS] Catching errors with $exceptionHandler

The AngularJS $exceptionHandler service allows you to catch and handle unanticipated JavaScript errors in a meaningful way. So when application is under building process, can create a $exceptionHandler service to log out the uncatch exception. angula

spring 新版本 ExceptionHandler 了解

Spring注解ExceptionHandler ,今天看新公司的项目发现的这个注解(以前公司用的版本低啊很多新特性都没有遇到过),用@RequestBody,@ResponseBody,可解决json绑定.但是每次遇到RuntimeException,需要给出一个默认返回JSON这一点比较繁琐. SimpleMappingExceptionResolver这个拦截器也可以实现,不过貌似是一般的用法. 用了ExceptionHandler注解,可以轻松解决这个问题 很简单,代码不再贴了

Spring异常处理@ExceptionHandler

最近学习Spring时,认识到Spring异常处理的强大.之前处理工程异常,代码中最常见的就是try-catch-finally,有时一个try,多个catch,覆盖了核心业务逻辑: 1 try{ 2 .......... 3 }catch(Exception1 e){ 4 .......... 5 }catch(Exception2 e){ 6 ........... 7 }catch(Exception3 e){ 8 ........... 9 } Spring能够较好的处理这种问题,核心如

添加@ControllerAdvice后报错 Failed to invoke @ExceptionHandler method

首先.单独使用ControllerAdvice 无法正常工作.需要配合@EnableWebMvc 使用. @ControllerAdvice @EnableWebMvc pulbic class ExceptionControllerAdvice{ @ExceptionHandler(NotFoundException.class) @ResponseBody public Map<String,Object> notFoundExc(NotFoundException exc,HttpSer

@ExceptionHandler异常统一处理

之前处理工程异常,代码中最常见的就是try-catch-finally,有时一个try,多个catch,覆盖了核心业务逻辑 try{ .......... }catch(Exception1 e){ .......... }catch(Exception2 e){ ........... }catch(Exception3 e){ ........... } @ExceptionHandler:统一处理某一类异常,从而能够减少代码重复率和复杂度 1 @Controller 2 public cl