博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于异常的抛出,捕获和拦截的新理解
阅读量:5937 次
发布时间:2019-06-19

本文共 1388 字,大约阅读时间需要 4 分钟。

hot3.png

不求其他,记录下吧

异常抛出处理如果采用spring拦截处理,不要捕获,否则拦截将不会生效

@ExceptionHandler

    @ResponseBody
    public Object processGlobalExceptions(HttpServletRequest request,HttpServletResponse httpResponse, HandlerMethod handlerMethod, Exception e ) throws Exception {
        if (e instanceof ServiceLogicalException) {
             if(RKWebUtil.isAjax(request)){
                 RKWebUtil.respJSON(httpResponse, ajaxError(e.getMessage()));
                 return null;
             }else{
                 httpResponse.setHeader("rk_header_msg", java.net.URLEncoder.encode(e.getMessage(), "UTF-8"));
                 RKWebUtil.redirect(request, httpResponse, RkConst.error_page.error_page_300);
                 return null;
             }
        } else if (e instanceof UnauthorizedException||e instanceof UnauthenticatedException) {//未授权
            StringBuffer msg=new StringBuffer().append("您没有该操作权限");
            
            if(RKWebUtil.isAjax(request)){
                RKWebUtil.respJSON(httpResponse, ajaxError(defaultAuthError+","+msg));
                 return null;
             }else{
                 RKWebUtil.redirect(request, httpResponse, RkConst.error_page.error_page_401);
                 return null;
             }
        }else if(e instanceof Exception){
                e.printStackTrace();
                
             if(RKWebUtil.isAjax(request)){
                 RKWebUtil.respJSON(httpResponse, ajaxError(defaultServerError ));
                  return null;
             }else{
                 RKWebUtil.redirect(request, httpResponse, RkConst.error_page.error_page_500);
                  return null;
             }
        }
        return null;
    } 

采用spring注解对异常进行统一拦截处理

175044_Vt33_2003574.png

在dao层有个异常抛出

此时,在任何时候都不要对该异常进行捕获,否则拦截将不会生效

由此猜测,异常只要捕获了,后续就不会再次出现

经过几次百度好像确实是这样的,异常上理解又了解一点点

转载于:https://my.oschina.net/hedaoxy/blog/820953

你可能感兴趣的文章
GA操作步骤和技巧(二)——用户行为分析
查看>>
shell中while循环里使用ssh的注意事项
查看>>
SHELL获取计算机外网ip的几种写法
查看>>
博客正在搬迁中
查看>>
触发器与存储过程的区别
查看>>
我的友情链接
查看>>
centos搭建supervisor
查看>>
linux日志分割
查看>>
Samba再报安全漏洞
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
Spring学习资料之 依赖注入(一)
查看>>
linux下mysql配置文件my.cnf详解
查看>>
安装win7提示安装程序无法创建新的系统分区和定位现有系统分区
查看>>
mysql5.6配置文件详解(二)
查看>>
深度学习研究组
查看>>
博客第一天--激激动
查看>>
面向对象(一)之类和对象
查看>>
ubuntu下文件拷贝命令cp命令
查看>>
SQL 学习日志02
查看>>