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 全局异常捕获以及统一接口返回结果
294 0
|
运维 Java 应用服务中间件
springboot 最简单的日志打印,输出日志文件 及全局异常捕获处理
springboot 最简单的日志打印,输出日志文件 及全局异常捕获处理
925 0
springboot 最简单的日志打印,输出日志文件 及全局异常捕获处理
|
Java 容器 Spring
SpringBoot实现全局异常捕获
版权声明:本文首发 http://asing1elife.com ,转载请注明出处。 https://blog.csdn.net/asing1elife/article/details/82711354 ...
2189 0
|
1月前
|
JavaScript 安全 Java
如何使用 Spring Boot 和 Ant Design Pro Vue 实现动态路由和菜单功能,快速搭建前后端分离的应用框架
本文介绍了如何使用 Spring Boot 和 Ant Design Pro Vue 实现动态路由和菜单功能,快速搭建前后端分离的应用框架。首先,确保开发环境已安装必要的工具,然后创建并配置 Spring Boot 项目,包括添加依赖和配置 Spring Security。接着,创建后端 API 和前端项目,配置动态路由和菜单。最后,运行项目并分享实践心得,包括版本兼容性、安全性、性能调优等方面。
143 1
|
2月前
|
前端开发 JavaScript Java
基于Java+Springboot+Vue开发的服装商城管理系统
基于Java+Springboot+Vue开发的服装商城管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的服装商城管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
147 2
基于Java+Springboot+Vue开发的服装商城管理系统
|
2月前
|
前端开发 JavaScript Java
SpringBoot项目部署打包好的React、Vue项目刷新报错404
本文讨论了在SpringBoot项目中部署React或Vue打包好的前端项目时,刷新页面导致404错误的问题,并提供了两种解决方案:一是在SpringBoot启动类中配置错误页面重定向到index.html,二是将前端路由改为hash模式以避免刷新问题。
229 1
|
17天前
|
JavaScript 安全 Java
如何使用 Spring Boot 和 Ant Design Pro Vue 构建一个具有动态路由和菜单功能的前后端分离应用。
本文介绍了如何使用 Spring Boot 和 Ant Design Pro Vue 构建一个具有动态路由和菜单功能的前后端分离应用。首先,创建并配置 Spring Boot 项目,实现后端 API;然后,使用 Ant Design Pro Vue 创建前端项目,配置动态路由和菜单。通过具体案例,展示了如何快速搭建高效、易维护的项目框架。
95 62
|
15天前
|
JavaScript 安全 Java
如何使用 Spring Boot 和 Ant Design Pro Vue 构建一个前后端分离的应用框架,实现动态路由和菜单功能
本文介绍了如何使用 Spring Boot 和 Ant Design Pro Vue 构建一个前后端分离的应用框架,实现动态路由和菜单功能。首先,确保开发环境已安装必要的工具,然后创建并配置 Spring Boot 项目,包括添加依赖和配置 Spring Security。接着,创建后端 API 和前端项目,配置动态路由和菜单。最后,运行项目并分享实践心得,帮助开发者提高开发效率和应用的可维护性。
33 2
|
17天前
|
JavaScript Java 项目管理
Java毕设学习 基于SpringBoot + Vue 的医院管理系统 持续给大家寻找Java毕设学习项目(附源码)
基于SpringBoot + Vue的医院管理系统,涵盖医院、患者、挂号、药物、检查、病床、排班管理和数据分析等功能。开发工具为IDEA和HBuilder X,环境需配置jdk8、Node.js14、MySQL8。文末提供源码下载链接。
|
2月前
|
前端开发 JavaScript Java
基于Java+Springboot+Vue开发的大学竞赛报名管理系统
基于Java+Springboot+Vue开发的大学竞赛报名管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的大学竞赛报名管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
218 3
基于Java+Springboot+Vue开发的大学竞赛报名管理系统