千家信息网

HandlerExceptionResolver中怎么实现全局异常捕获

发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,本篇文章给大家分享的是有关HandlerExceptionResolver中怎么实现全局异常捕获,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看
千家信息网最后更新 2025年12月02日HandlerExceptionResolver中怎么实现全局异常捕获

本篇文章给大家分享的是有关HandlerExceptionResolver中怎么实现全局异常捕获,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

工程中我们不可否认的会出现异常,而且这些异常并没有进行捕获。经常出现的bug如空指针异常等等。在之前的项目中,如果我们没有进行任何配置,那么容器会自动打印错误的信息,如果tomcat的404页面,400页面等等。如果我们在web.xml中进行如下配置,就会拦截错误,然后跳转到指定的错误页面。

    500    /500.jsp

但是这已经落后了,现在我们通过实现spring的HandlerExceptionResolver接口来捕获所有的异常。 主要作用是,比如当我们在Web API 提供服务的时候,API自己故障了,那么在API 故障前我们可以再设定一个springboot框架自身的 异常检测

demo如下:

package com.demo.interceptor;import com.alibaba.fastjson.JSONObject;import com.credithc.kg.fetures.model.ResultDTO;import lombok.extern.slf4j.Slf4j;import org.springframework.stereotype.Component;import org.springframework.web.servlet.HandlerExceptionResolver;import org.springframework.web.servlet.ModelAndView;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.io.IOException;@Component@Slf4jpublic class MyHandlerExceptionResolver implements HandlerExceptionResolver {    private ModelAndView modelAndView = new ModelAndView();    @Override    public ModelAndView resolveException(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) {        try {            log.error("系统运行时异常:{}",e);            httpServletResponse.setCharacterEncoding("UTF-8");            httpServletResponse.setContentType("application/json");            httpServletResponse.getWriter().print(JSONObject.toJSON(ResultDTO.fail("系统异常")));        } catch (IOException e1) {            log.error("响应IO异常:{}",e1);        }        return modelAndView;    }}
import lombok.Data;@Datapublic class ResultDTO {    private Integer code;    private String msg;    private T body;    private ResultDTO(Integer code, String msg, T body) {        this.code = code;        this.msg = msg;        this.body = body;    }    public static  ResultDTO success(T body){        return success(200,"成功",body);    }    public static ResultDTO success(Integer code, String msg){        return success(code,msg,null);    }    public static ResultDTO fail(String msg){        return success(500,msg);    }             public static  ResultDTO success(Integer code, String msg, T body){                return new ResultDTO(code,msg,body);        }}

以上就是HandlerExceptionResolver中怎么实现全局异常捕获,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。

错误 页面 全局 故障 更多 知识 篇文章 系统 配置 实用 成功 作用 信息 容器 就是 工作会 工程 指针 接口 文章 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 大连服务器机柜导轨安装图 国赛规程部分赛项网络安全 温岭巨型软件开发维修价格 进口数据库编程软件价格 网络安全手抄报网站 计算机网络技术如何评职称 家庭电信宽带建立数据库延迟高吗 福建推广软件开发 美国互联网科技巨头监管 mac学习数据库 灵宝手机软件开发 播放盒子的网络安全网络安全 关于重视网络安全的手抄报 联盟最多人服务器 佰利互联网络科技有限公司 想用电脑炒股软件开发 数据库用户账号管理 上可找到 个不同的数据库 玩家自己建的服务器 放置奇兵绿色服务器 怎么设置路由器首选dns服务器 京科北京网络技术有限公司 服务器硬盘测温 旧手机做服务器有什么用 天猫购物车下单服务器出错怎么办 和平精英新的服务器叫什么名字 青岛小鱼网络技术有限公司好吗 网络安全打击例子 网络技术主管负责什么 网络技术基础pk
0