广告
返回顶部
首页 > 资讯 > 后端开发 > JAVA >SpringBoot全局异常处理 | Java
  • 407
分享到

SpringBoot全局异常处理 | Java

javaspringboot后端 2023-10-12 08:10:16 407人浏览 安东尼
摘要

⭐简单说两句⭐ 作者:后端小知识 CSDN个人主页:后端小知识 🔎GZH:后端小知识 🎉欢迎关注🔎点赞👍收藏⭐️留言

简单说两句

作者:后端小知识

CSDN个人主页后端小知识

🔎GZH后端小知识

🎉欢迎关注🔎点赞👍收藏⭐️留言📝

文章目录


image-20231010164732205

SpringBoot全局异常处理 | Java

亲爱的友友们,我们今天来讲一讲SpringBoot的全局异常处理吧😎

🎨什么是全局异常?

全局异常指的是在程序运行过程中发生的非预期异常,这些异常可能会导致程序崩溃或出现错误结果。全局异常处理机制可以捕获这些异常并进行相应的处理,如记录日志、提示用户等,从而提高程序的可靠性和稳定性。

🍖如何使用全局异常

【Tips】:我们这里的实现采用**@RestControllerAdvice@ExceptionHandler**的方式进行实现,当然,读者们也可以自行根据切面去进行实现的啦😁

我们先定义一个自定义异常(读者们可以看情况定义,也可以不定义哈)

我们这里写得比较简洁,可以根据自己的业务进行定义的哈

public class MyException extends RuntimeException{    public MyException(String message) {        super(message);    }}

自定义异常定义好了后,我们就需要定义全局异常处理器了

我们先上代码,然后再来解释

@RestControllerAdvice@Slf4jpublic class GlobalExceptionHandler {        @ExceptionHandler(MyException.class)    public String handleMyException(MyException e) {        log.error("自定义MyException异常信息:{}", e.getMessage());        return e.getMessage();    }    @ExceptionHandler(RuntimeException.class)    public String handleMyException(RuntimeException e) {        log.error("运行时异常信息:{}", e.getMessage());        return e.getMessage();    }    @ExceptionHandler(ArithmeticException.class)    public String handleMyException(ArithmeticException e) {        log.error("算术异常信息:{}", e.getMessage());        return e.getMessage();    }}

【Tips】

@ExceptionHandler用这个注解来定义捕获什么样的异常。当抛出这些异常时,就会调用对应的方法。

return的内容将会返回给前端

当代码中出现算术异常时,日志会打印 算术异常信息:具体异常信息,并不会打印 运行时异常的日志,如果我们没有捕获ArithmeticException异常的这个方法的话,那么就会被RuntimeException捕获,会打印运行时异常:具体异常信息

OK,我们接下来写Service的代码,这里方便演示,写得比较简洁,我就没有写dao层什么的连接数据库了,友友们在实践的时候可以试一试呢😁

LearnExceptionService

public interface LearnExceptionService {        Object learnException();        Object learnAlException();}

返回类型友友们根据具体情况写额,我这里写Object只是为了方便演示

接口实现

LearnExceptionServiceImpl

@Servicepublic class LearnExceptionServiceImpl implements LearnExceptionService {        @Override    public Object learnException() {        System.out.println("hello");        throw new MyException("学习全局异常处理");    }        @Override    public Object learnAlException() {        int i = 1 / 0;        return i;    }}

然后Controller层调用service层

LearnExceptionController

@api("学习全局异常处理")@RestController@RequestMapping("exception")public class LearnExceptionController {    @Resource    private LearnExceptionService learnExceptionService;        @GetMapping("v1/global")    public Object learnException() {        return learnExceptionService.learnException();    }        @GetMapping("v1/global/al")    public Object learnTheException() {        return learnExceptionService.learnAlException();    }}

好咯,代码大工告成,接下来我们启动服务调用接口吧😛

调用接口 /exception/v1/global,打印日志如下

image-20231010145314336

调用接口 /exception/v1/global/al,打印日志如下

image-20231010145550769




好了,我们来看个对比

image-20231010161342481

看了这个对比,你应该知道怎么选了吧😋

全局异常可以减少大量的try catch语句,用了全局异常后,不用自己去try catch捕获异常了,直接走全局通用的捕获逻辑,当然,如果有特殊情况需要try catch捕获异常的话,那也是可以的,比如我们的自定义异常一般都是得手动捕获抛出异常

OK,我们接下来总结一下全局异常的优缺点吧

🎯全局异常优缺点

优点:

  • 统一异常处理:可以集中处理所有类型的异常,使得代码更整洁,易于维护。
  • 提供更好的用户体验:可以为用户返回友好的错误信息,而不是展示复杂的技术错误。

缺点:

  • 灵活性有限:如果某些特定类型的异常需要特殊处理,那么全局异常处理可能不是最佳选择。
  • 隐藏了一些重要的错误细节:对于开发人员来说,全局异常处理可能会掩盖一些关于异常具体位置和原因的信息。

【都看到这了,点点赞点点关注呗,爱你们】😚😚

抽象工厂  引导关注

结语

谢谢你的阅读,由于作者水平有限,难免有不足之处,若读者发现问题,还请批评,在留言区留言或者私信告知,我一定会尽快修改的。若各位大佬有什么好的解法,或者有意义的解法都可以在评论区展示额,万分谢谢。
写作不易,望各位老板点点赞,加个关注!😘😘😘

💬

作者:后端小知识

CSDN个人主页后端小知识

🔎GZH后端小知识

🎉欢迎关注🔎点赞👍收藏⭐️留言📝

来源地址:https://blog.csdn.net/m0_46833224/article/details/133751023

--结束END--

本文标题: SpringBoot全局异常处理 | Java

本文链接: https://www.lsjlt.com/news/429147.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • SpringBoot全局异常处理 | Java
    ⭐简单说两句⭐ 作者:后端小知识 CSDN个人主页:后端小知识 🔎GZH:后端小知识 🎉欢迎关注🔎点赞👍收藏⭐️留言...
    99+
    2023-10-12
    java spring boot 后端
  • Java Springboot全局异常处理
    目录前言一、思路?二、步骤1.自定义接口:2.自定义错误枚举3.自定义异常类4.异常捕获5.在代码中抛异常总结前言 对于作为菜鸟程序员的我来说,经常在controller使用try-...
    99+
    2022-11-12
  • SpringBoot全局异常处理方式
    目录SpringBoot全局异常处理springboot全局异常处理——@ControllerAdvice+ExceptionHandler一、全局捕获异常后,返回json给浏览器二...
    99+
    2022-11-12
  • springboot全局异常处理详解
    一、单个controller范围的异常处理package com.xxx.secondboot.web;import org.springframework.web.bind.annotation.ExceptionHandler;impo...
    99+
    2023-05-31
    spring boot 全局异常
  • Java中如何实现Springboot全局异常处理
    这篇文章主要为大家展示了“Java中如何实现Springboot全局异常处理”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Java中如何实现Springboot全局异常处理”这篇文章吧。一、思路...
    99+
    2023-06-25
  • SpringBoot 全局异常处理——解决404/500
    SpringBoot 全局异常处理——解决404/500 SpringBoot要全局处理 Spring Boot 应用程序中的 HTTP 404 和 500 错误,您可以自定义一个异常处理器类,并使用...
    99+
    2023-09-28
    spring boot java 后端
  • SpringBoot全局异常处理方案分享
    目录一 业务场景二 全局系统异常类一)全局系统异常类二) 包装异常返回结果给前端,修改自定义异常三 返回案例一 业务场景 调用接口时需要对属性进行校验,比如属性长度,当属性为邮箱时校...
    99+
    2022-11-13
  • 如何使用SpringBoot处理全局异常
    如何使用SpringBoot处理全局异常 使用@ControllerAdvice 和 @ExceptionHandler处理全局异常 参考: @ControllerAdvice@ResponseBod...
    99+
    2023-10-27
    spring boot java 后端 异常处理
  • springboot框架的全局异常怎么处理
    这篇文章主要介绍“springboot框架的全局异常怎么处理”,在日常操作中,相信很多人在springboot框架的全局异常怎么处理问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”springboot框架的全局...
    99+
    2023-06-13
  • SpringBoot全局异常处理方式是什么
    这篇文章主要讲解了“SpringBoot全局异常处理方式是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“SpringBoot全局异常处理方式是什么”吧!SpringBoot全局异常处理为...
    99+
    2023-06-25
  • SpringBoot配置全局异常处理器捕获异常详解
    目录1.前言2.全局异常并处理的方法一(@ControllerAdvice 和 @ExceptionHandler)3.全局异常并处理的方法二 (AOP)总结1.前言 任何系统,我们...
    99+
    2023-05-14
    spring boot全局异常处理 springboot捕获异常 springboot异常处理机制
  • springboot实现全局异常处理及自定义异常类
    目录全局异常处理及自定义异常类全局异常处理定义一个业务异常的枚举全局异常处理配置springboot Restful使用springboot 返回 ModelAndView全局异常处...
    99+
    2022-11-13
  • SpringBoot怎么配置全局异常处理器捕获异常
    本篇内容主要讲解“SpringBoot怎么配置全局异常处理器捕获异常”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“SpringBoot怎么配置全局异常处理器捕获异常”吧!1.前言任何系统,我们不...
    99+
    2023-07-05
  • springboot全局异常处理的方法是什么
    在Spring Boot中,可以使用`@ControllerAdvice`和`@ExceptionHandler`注解来实现全局异常...
    99+
    2023-10-07
    springboot
  • SpringBoot配置系统全局异常映射处理
    目录一、异常分类 1、业务异常2、系统异常二、解决应用启动后404界面1、引入页面Jar包2、自定义首页接口3、首页界面4、运行效果三、SpringBoot2.0中异常处理...
    99+
    2022-11-12
  • SpringBoot配置GlobalExceptionHandler全局异常处理器案例
    1. 创建全局异常处理器类GlobalExceptionHandler @ControllerAdvice: 定义统一的异常处理类,捕获 Controller 层抛出的异常。如果添加...
    99+
    2022-11-12
  • SpringBoot实现全局异常处理方法总结
    目录全局异常处理配置全局异常全局异常处理的升级加入自定义异常处理处理 Controller 数据绑定、数据校验的异常GlobalExceptionHandler全部代码总结在项目开发...
    99+
    2022-11-13
  • ASP.NETCore全局异常处理
    一、前言 在程序设计中,我们会遇到各种各样的异常问题,一个好的异常处理解决方案能够帮助开发者快速的定位问题,也能够给用户更好的用户体验。那么我们在AspNetCore中该如何捕获和处...
    99+
    2022-11-13
  • springboot如何实现全局异常处理及自定义异常类
    这篇文章主要介绍springboot如何实现全局异常处理及自定义异常类,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!全局异常处理及自定义异常类全局异常处理定义一个处理类,使用@ControllerAdvice注解。@...
    99+
    2023-06-29
  • springboot框架的全局异常处理方案详解
    系统框架搭建的前期过程中,为了约束代码规范,我们会对一些通用功能做一些处理,比如声明一些系统公用错误类、封装通用返回结果、统一异常处理等,这样做的优势是团队开发过程中能够形成统一的代...
    99+
    2022-11-11
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作