返回顶部
首页 > 资讯 > 精选 >Java中如何实现Springboot全局异常处理
  • 380
分享到

Java中如何实现Springboot全局异常处理

2023-06-25 12:06:51 380人浏览 安东尼
摘要

这篇文章主要为大家展示了“Java中如何实现SpringBoot全局异常处理”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Java中如何实现springboot全局异常处理”这篇文章吧。一、思路

这篇文章主要为大家展示了“Java中如何实现SpringBoot全局异常处理”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Java中如何实现springboot全局异常处理”这篇文章吧。

    一、思路?

    springboot提供了全局异常处理的注解,我们需要弄明白的是。扑捉什么异常,结果如果返回,如何优雅的管理返回的结果集。

    二、步骤

    1.自定义接口:

    自定义接口主要是描述返回的code码和返回msg,自定义错误描述枚举需要实现这个接口

    public interface ErrorType {        String getCode();        String getMesg();}

    2.自定义错误枚举

    使用枚举,看起来代码很优雅,并且不用使用static final来定义类型。

    @Getterpublic enum SystemErrorType implements ErrorType {    SYSTEM_ERROR("-1", "系统异常"),    SYSTEM_BUSY("000001", "系统繁忙,请稍候再试");        private String code;        private String mesg;    SystemErrorType(String code, String mesg) {        this.code = code;        this.mesg = mesg;    }}

    3.自定义异常类

    @Getterpublic class MyException extends RuntimeException{      private final ErrorType errorType;      public MyException () {       this.errorType = SystemErrorType.SYSTEM_ERROR;   }   public MyException(SystemErrorType systemErrorType) {   this.errorType = systemErrorType;    }

    4.异常捕获

    @RestControllerAdvice@Slf4jpublic class GlobalExceptionHandlerAdvice extends DefaultGlobalExceptionHandlerAdvice {    @ExceptionHandler(value = {MyException .class})    public Result MyException (MyException ex) {        log.error(ex.getMessage());        return Result.fail(ex.getErrorType());    }    @ExceptionHandler(value = {NotRoleException.class})    public Result NotRoleException(NotRoleException nle) {        // 打印堆栈,以供调试        //nle.printStackTrace();        String message = "该功能仅供"+nle.getRole()+"使用!";        // 返回给前端        return Result.fail("090017",message,null);    }}

    也不是说只能通过枚举来返回,只要你的返回工具类支持参数填写,可以做类似于第二种的返回,但是这样方法对于返回的code来太好管理

    5.在代码中抛异常

    比如我做判空处理时,利用枚举作为参数返回

    @PostMapping("/listQuestionVO")    public Result listQuestionBankVO(@RequestBody QuestionBankQuery query){        if (query.getPageNum()==null || query.getPageSize()==null){            return Result.fail(QuestionnaireErrorType.PARAMETERISNULL_ERROR);        }        Result result = questionBankService.listQuestionBankVO(query);        return result;    }

    实际上,你可以在你需要处理异常的地方直接throws异常,可以直接在方法上throws抛出,等待全局异常捕获

    以上是“Java中如何实现Springboot全局异常处理”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网精选频道!

    --结束END--

    本文标题: Java中如何实现Springboot全局异常处理

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

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

    猜你喜欢
    • Java中如何实现Springboot全局异常处理
      这篇文章主要为大家展示了“Java中如何实现Springboot全局异常处理”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Java中如何实现Springboot全局异常处理”这篇文章吧。一、思路...
      99+
      2023-06-25
    • SpringBoot全局异常处理 | Java
      ⭐简单说两句⭐ 作者:后端小知识 CSDN个人主页:后端小知识 🔎GZH:后端小知识 🎉欢迎关注🔎点赞👍收藏⭐️留言...
      99+
      2023-10-12
      java spring boot 后端
    • Java Springboot全局异常处理
      目录前言一、思路?二、步骤1.自定义接口:2.自定义错误枚举3.自定义异常类4.异常捕获5.在代码中抛异常总结前言 对于作为菜鸟程序员的我来说,经常在controller使用try-...
      99+
      2024-04-02
    • 如何在SpringBoot中实现全局异常处理方式
      如何在SpringBoot中实现全局异常处理方式?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。springboot是什么springboot一种全新的编程规范,...
      99+
      2023-06-14
    • springboot如何实现全局异常处理及自定义异常类
      这篇文章主要介绍springboot如何实现全局异常处理及自定义异常类,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!全局异常处理及自定义异常类全局异常处理定义一个处理类,使用@ControllerAdvice注解。@...
      99+
      2023-06-29
    • 如何使用SpringBoot处理全局异常
      如何使用SpringBoot处理全局异常 使用@ControllerAdvice 和 @ExceptionHandler处理全局异常 参考: @ControllerAdvice@ResponseBod...
      99+
      2023-10-27
      spring boot java 后端 异常处理
    • springboot实现全局异常处理及自定义异常类
      目录全局异常处理及自定义异常类全局异常处理定义一个业务异常的枚举全局异常处理配置springboot Restful使用springboot 返回 ModelAndView全局异常处...
      99+
      2024-04-02
    • SpringBoot实现全局异常处理方法总结
      目录全局异常处理配置全局异常全局异常处理的升级加入自定义异常处理处理 Controller 数据绑定、数据校验的异常GlobalExceptionHandler全部代码总结在项目开发...
      99+
      2024-04-02
    • SpringBoot全局异常处理方式
      目录SpringBoot全局异常处理springboot全局异常处理——@ControllerAdvice+ExceptionHandler一、全局捕获异常后,返回json给浏览器二...
      99+
      2024-04-02
    • springboot全局异常处理详解
      一、单个controller范围的异常处理package com.xxx.secondboot.web;import org.springframework.web.bind.annotation.ExceptionHandler;impo...
      99+
      2023-05-31
      spring boot 全局异常
    • SpringBoot中如何实现全局异常与数据校验
      SpringBoot中如何实现全局异常与数据校验,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。项目建立利用idea 工具,很容易的搭建一个SpringBoot项...
      99+
      2023-06-16
    • SpringBoot全局异常处理方案分享
      目录一 业务场景二 全局系统异常类一)全局系统异常类二) 包装异常返回结果给前端,修改自定义异常三 返回案例一 业务场景 调用接口时需要对属性进行校验,比如属性长度,当属性为邮箱时校...
      99+
      2024-04-02
    • SpringBoot 全局异常处理——解决404/500
      SpringBoot 全局异常处理——解决404/500 SpringBoot要全局处理 Spring Boot 应用程序中的 HTTP 404 和 500 错误,您可以自定义一个异常处理器类,并使用...
      99+
      2023-09-28
      spring boot java 后端
    • 详解如何在SpringBoot项目中使用全局异常处理
      目录1. 创建自定义异常2.创建全局异常处理器3.创建测试控制器在完整的项目开发中,异常的出现几乎是无法避免的;如果凡是有可能出现异常的地方,我们都手动的使用try-catch将其捕...
      99+
      2022-11-13
      SpringBoot全局异常处理 SpringBoot 异常处理
    • go怎么实现全局异常处理
      要实现Go语言的全局异常处理,可以使用defer和recover来捕获和处理panic异常。 在Go语言中,defer语句会在函数结...
      99+
      2023-10-20
      go
    • 使用aop实现全局异常处理
      本文实例为大家分享了使用aop实现全局异常处理的具体代码,供大家参考,具体内容如下 日常业务中存在的问题 使用大量的try/catch来捕获异常导致整个控制层代码可读性极差,并且此类...
      99+
      2024-04-02
    • springMvc全局异常如何实现
      这篇文章给大家分享的是有关springMvc全局异常如何实现的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一般使用第二种方法去实现全局异常SimpleMappingExceptionResolver实现全局异常,...
      99+
      2023-06-29
    • springboot框架的全局异常怎么处理
      这篇文章主要介绍“springboot框架的全局异常怎么处理”,在日常操作中,相信很多人在springboot框架的全局异常怎么处理问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”springboot框架的全局...
      99+
      2023-06-13
    • SpringBoot全局异常处理方式是什么
      这篇文章主要讲解了“SpringBoot全局异常处理方式是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“SpringBoot全局异常处理方式是什么”吧!SpringBoot全局异常处理为...
      99+
      2023-06-25
    • SpringBoot统一接口返回及全局异常如何处理
      这篇文章主要介绍“SpringBoot统一接口返回及全局异常如何处理”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“SpringBoot统一接口返回及全局异常如何处理”文章能帮助大家解决问题。一、Sp...
      99+
      2023-07-02
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作