SpringBoot项目如何实现全局异常捕获

简介: SpringBoot项目如何实现全局异常捕获

写在前面


在规范好的项目组中进行工作,一般都是有着很严格的开发规范的,比如编码上的规范,在某些位置要固定的去抛出异常,日志的输出规范等等等,很多很多的规范,往往给没有养成好的开发习惯的人们造成很大的困扰。


今天我要给大家分享的就是异常的全局化处理问题。


SpringBoot项目如何实现全局异常捕获


SpringBoot项目中要想去实现全局异常捕获,无非就是利用两个关键性的注解来实现。


那就是@ControllerAdvice注解 和 @ExceptionHandler注解。


@ControllerAdvice:增强版的Controller注解,一般都是声明全局性的功能,比如实现全局异常处理,或者是全局数据绑定,亦或者是全局数据预处理等等的。


@ExceptionHandler:统一处理某一类异常,其中可以指定某一类异常的class,使用该注解,可以让处理某类异常的时候更方便些。


而这两个注解如何配合使用才能处理全局的异常呢,来看一下相关的代码吧。


首先创建一个类,代码如下:

public class GlobalExceptionHandle {
}


加入@ControllerAdvice注解,代码如下:

@ControllerAdvice
public class GlobalExceptionHandle {
}


声明了全局性的类之后,再让我们加入异常的捕获注解@ExceptionHandler。

@ControllerAdvice
public class GlobalExceptionHandle {
    /***
     * 404处理
     * @return
     */
    @ExceptionHandler(NoHandlerFoundException.class)
    public String notFountHandler(HttpServletRequest request, HttpServletResponse response, Model model, NoHandlerFoundException e) throws IOException, JSONException {
        String servletPath = request.getServletPath();
        String msg = "未找到路径:" + servletPath;
        return msg;
    }
}


如上代码,我们就加入了404异常的处理,我们也可以加入空指针的异常处理,如下代码:

@ControllerAdvice
public class GlobalExceptionHandle {
    /***
     * 404处理
     * @return
     */
    @ExceptionHandler(NoHandlerFoundException.class)
    public String notFountHandler(HttpServletRequest request, HttpServletResponse response, Model model, NoHandlerFoundException e) throws IOException, JSONException {
        String servletPath = request.getServletPath();
        String msg = "未找到路径:" + servletPath;
        return msg;
    }
    /***
     * 404处理
     * @return
     */
    @ExceptionHandler(NullPointerException.class)
    public String notFountHandler(HttpServletRequest request, HttpServletResponse response, Model model, NoHandlerFoundException e) throws IOException, JSONException {
        String servletPath = request.getServletPath();
        String msg = "空指针了:" + servletPath;
        return msg;
    }
}


这样我们就可以实现了全局异常的捕获了,是不是很简单,快去试试吧。


相关文章
Springboot 全局异常捕获以及统一接口返回结果
Springboot 全局异常捕获以及统一接口返回结果
397 0
|
运维 Java 应用服务中间件
springboot 最简单的日志打印,输出日志文件 及全局异常捕获处理
springboot 最简单的日志打印,输出日志文件 及全局异常捕获处理
1226 0
springboot 最简单的日志打印,输出日志文件 及全局异常捕获处理
|
Java 容器 Spring
SpringBoot实现全局异常捕获
版权声明:本文首发 http://asing1elife.com ,转载请注明出处。 https://blog.csdn.net/asing1elife/article/details/82711354 ...
2276 0
|
2月前
|
JavaScript Java 关系型数据库
基于springboot的项目管理系统
本文探讨项目管理系统在现代企业中的应用与实现,分析其研究背景、意义及现状,阐述基于SSM、Java、MySQL和Vue等技术构建系统的关键方法,展现其在提升管理效率、协同水平与风险管控方面的价值。
|
2月前
|
搜索推荐 JavaScript Java
基于springboot的儿童家长教育能力提升学习系统
本系统聚焦儿童家长教育能力提升,针对家庭教育中理念混乱、时间不足、个性化服务缺失等问题,构建科学、系统、个性化的在线学习平台。融合Spring Boot、Vue等先进技术,整合优质教育资源,提供高效便捷的学习路径,助力家长掌握科学育儿方法,促进儿童全面健康发展,推动家庭和谐与社会进步。
|
2月前
|
JavaScript Java 关系型数据库
基于springboot的古树名木保护管理系统
本研究针对古树保护面临的严峻挑战,构建基于Java、Vue、MySQL与Spring Boot技术的信息化管理系统,实现古树资源的动态监测、数据管理与科学保护,推动生态、文化与经济可持续发展。
|
2月前
|
监控 安全 JavaScript
2025基于springboot的校车预定全流程管理系统
针对传统校车管理效率低、信息不透明等问题,本研究设计并实现了一套校车预定全流程管理系统。系统采用Spring Boot、Java、Vue和MySQL等技术,实现校车信息管理、在线预定、实时监控等功能,提升学校管理效率,保障学生出行安全,推动教育信息化发展。
|
2月前
|
人工智能 Java 关系型数据库
基于springboot的画品交流系统
本项目构建基于Java+Vue+SpringBoot+MySQL的画品交流系统,旨在解决传统艺术交易信息不透明、流通受限等问题,融合区块链与AI技术,实现画品展示、交易、鉴赏与社交一体化,推动艺术数字化转型与文化传播。
|
2月前
|
JavaScript Java 关系型数据库
基于springboot的高校运动会系统
本系统基于Spring Boot、Vue与MySQL,实现高校运动会报名、赛程安排及成绩管理的全流程信息化,提升组织效率,杜绝信息错漏与冒名顶替,推动体育赛事智能化发展。

热门文章

最新文章