spring mvc全局异常处理

复制代码
package com.qmtt.config;

import javax.servlet.http.HttpServletRequest;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;

import com.qmtt.common.BizException;
import com.qmtt.common.JsonRet;

/**
 * @author admin 2017年4月6日 全局异常处理
 */
@ControllerAdvice
public class GlobalExceptionHandler {
    private static final Logger log = LoggerFactory.getLogger(GlobalExceptionHandler.class);
    // public static final String DEFAULT_ERROR_VIEW = "error";
    //
    // /**
    // * 返回错误页面
    // *
    // * @param req
    // * @param e
    // * @return
    // * @throws Exception
    // */
    // @ExceptionHandler(value = Exception.class)
    // public ModelAndView defaultErrorHandler(HttpServletRequest req, Exception
    // e) throws Exception {
    // ModelAndView mav = new ModelAndView();
    // mav.addObject("exception", e);
    // mav.addObject("url", req.getRequestURL());
    // mav.setViewName(DEFAULT_ERROR_VIEW);
    // return mav;
    // }

    /**
     * 处理异常,返回
     * 
     * @param req
     * @param e
     * @return
     * @throws Exception
     */
    @ExceptionHandler(value = BizException.class)
    @ResponseBody
    public Object jsonErrorHandler(HttpServletRequest req, BizException e) throws Exception {
        log.error("", e);
        JsonRet ret = new JsonRet();
        ret.setBizException(e);
        return ret;
    }

    @ExceptionHandler(value = Exception.class)
    @ResponseBody
    public Object jsonErrorHandler(HttpServletRequest req, Exception e) throws Exception {
        log.error("", e);
        JsonRet ret = new JsonRet();
        ret.setException(e);
        return ret;
    }
}
复制代码

 

posted @   wujf  阅读(127)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
历史上的今天:
2016-01-30 webapi之jsonp调用
2016-01-30 jsonp调用webapi和mvc
点击右上角即可分享
微信分享提示