zoukankan      html  css  js  c++  java
  • 统一异常处理@ExceptionHandler

    异常处理功能中用到的注解是:@ExceptionHandler(异常类型.class). 
    这个注解的功能是:自动捕获controller层出现的指定类型异常,并对该异常进行相应的异常处理. 
    比如我要在controller层中处理InsertMessageException类型异常,我就可以在controller层的类中定义以下方法:

    @ExceptionHandler(InsertMessageException.class)
    public ModelAndView HandlerInsertMessageException(Exception ex){
        ModelAndView modelAndView= new ModelAndException();
        //相应的处理方法
        //...
        //...
        //比如说获取异常信息,并添加到modelandview中,跳转到指定异常页面
        modelAndView.addObject("exceptionMessage",ex.getMessage());
        modelAndView.setViewName("/exceptionPage");
        return modelAndView;
    }

    通过这样一个被@ExceptionHandler注解修饰的方法,就能捕获controller层所有抛出的InsertMessageException类型异常,并对异常进行相应的处理

    如果想一个方法处理多种类型异常,就需要在@ExceptionHandler的括号中用大括号添加所想要处理的异常类型,用”,”隔开 
    例如:@ExceptionHandler({InsertException.class,DeleteException.class})

    ===

    使用 @ControllerAdvice,不用任何的配置,只要把这个类放在项目中,Spring能扫描到的地方。就可以实现全局异常的回调

       @ControllerAdvice  
        public class SpringExceptionHandler{  
          /** 
             * 全局处理Exception 
             * 错误的情况下返回500 
             * @param ex 
             * @param req 
             * @return 
             */  
            @ExceptionHandler(value = {Exception.class})  
            public ResponseEntity<Object> handleOtherExceptions(final Exception ex, final WebRequest req) {  
                TResult tResult = new TResult();  
                tResult.setStatus(CodeType.V_500);  
                tResult.setErrorMessage(ex.getMessage());  
                return new ResponseEntity<Object>(tResult,HttpStatus.OK);  
            }  
          
        }  
  • 相关阅读:
    没有谁是不可取代的
    javascript mvc
    12种JavaScript MVC框架之比较
    windows 下编译libcurl
    PJSIP开发指南-第二章
    URL的字符编码
    unimrcp plugin 分析
    替换unimrcp的VAD模块
    WebRTC的VAD 过程解读
    unimrcp-voice-activity语音检测
  • 原文地址:https://www.cnblogs.com/xingzc/p/8623490.html
Copyright © 2011-2022 走看看