• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

springboot全局异常拦截器友好异常提示案例

springboot 海叔叔 4年前 (2021-08-23) 62次浏览 已收录 0个评论

本文由搞代码简单介绍springboot全局异常拦截器友好异常提示简单案例演示
1、添加config 配置类

package com.gaodaima.config;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.HandlerExceptionResolver;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.view.json.MappingJackson2JsonView;

@Configuration
public class ExceptionConfiguration implements HandlerExceptionResolver {

    @Override
    public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler,
            Exception ex) {
        ModelAndView mv = new ModelAndView(new MappingJackson2JsonView());    //返回json
        String exInfo = ex.toString().replaceAll("\n", "");        
        boolean status = exInfo.contains("Subject does not have permission");        
        if(status){
            exInfo = "[没有此页面的访问权限]" + exInfo;
        }else {
            System.out.println("==============异常开始=============");
            ex.printStackTrace();
            System.out.println("==============异常结束=============");
        }
        mv.addObject("exception", exInfo);
        mv.addObject("result", "exception");
        return mv;
    }
}

2、在逻辑类的方法上抛出异常 throws Exception,比如

/**删除
 * @param out
 * @throws Exception
 */
@RequestMapping(value="/delete")
@RequiresPermissions("autograph:del")
@ResponseBody
public Object delete() throws Exception{
    Map<String,String> map = new HashMap<String,String>();
    String errInfo = "success";
    //xxxx
    map.put("result", errInfo);                //返回结果
    return map;
}

3、前端页面接收异常结果

//发送 post 请求提交保存
$.ajax({
	xhrFields: {
		withCredentials: true
	},
        type: "POST",
        url: httpurl+'xxxx/delete',
     data: {tm:new Date().getTime()},
        dataType:"json",
        success: function(data){
            if("success" == data.result){
                
            }else if ("exception" == data.result){
                alert("模块异常"+data.exception);//显示异常
                
            }
        }
    });

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:springboot全局异常拦截器友好异常提示案例
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址