【JAVA】Java中Spring Boot如何设置全局的BusinessException

文章目录


前言

在Java应用开发中,我们常常需要处理各种异常。Spring Boot提供了一种方便的方式来全局处理异常。在本文中,我们将探讨如何在Spring Boot中设置全局的BusinessException。


一、函数解释

在Spring Boot中,我们主要使用以下的注解和方法:

  • @ExceptionHandler: 这是Spring提供的一个注解,我们使用它来标记一个方法是异常处理器。
  • @ResponseBody: 这是Spring提供的一个注解,我们使用它来将方法的返回值转换为JSON或其他适合HTTP响应的格式。

二、代码实现

以下是一个使用这些注解和方法的例子:

首先,我们创建一个BusinessException类:

c 复制代码
public class BusinessException extends RuntimeException {
    private String code;
    private String msg;

    public BusinessException(String code, String msg) {
        this.code = code;
        this.msg = msg;
    }

    // getters and setters
}

然后,我们创建一个全局的异常处理器:

c 复制代码
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.ResponseStatus;
import org.springframework.http.HttpStatus;

@ControllerAdvice
public class GlobalExceptionHandler {
    @ExceptionHandler(BusinessException.class)
    @ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)
    @ResponseBody
    public String handleBusinessException(BusinessException ex) {
        // 这里你可以返回一个错误的JSON或者其他你想返回的信息
        return "Error code: " + ex.getCode() + ", message: " + ex.getMessage();
    }
}

在这个例子中,我们首先创建了一个GlobalExceptionHandler类,并使用@ControllerAdvice注解来标记它是一个全局的异常处理器。然后我们使用@ExceptionHandler注解来处理BusinessException。当BusinessException被抛出时,handleBusinessException方法会被调用,然后返回一个错误的信息。


三、总结

在本文中,我们讨论了如何在Spring Boot中设置全局的BusinessException。我们首先解释了@ExceptionHandler和@ResponseBody注解,然后给出了一个基本的示例代码。希望这篇博客能帮助你理解如何在Spring Boot中全局处理BusinessException。

相关推荐
算法与双吉汉堡1 分钟前
【短链接项目笔记】6 短链接跳转
java·开发语言·笔记·后端·springboot
学Linux的语莫2 分钟前
python的基础使用
开发语言·python
独自破碎E6 分钟前
IDEA2023中新建Spring Boot2.X版本的工程的方法
java·spring boot·后端
醇氧10 分钟前
【idea】使用Live Templates
java·ide·intellij-idea
talenteddriver15 分钟前
Java Web:http请求在springboot项目中的传递层级(自用笔记)
java·前端·spring boot·http
wildlily842717 分钟前
C++ Primer 第5版章节题 第十章
开发语言·c++
咘噜biu21 分钟前
Java后端和前端的接口数据加密方案(椭圆曲线集成加密方案)
java·前端·安全·aes·密钥协商ecdh·椭圆曲线集成加密方案
Knight_AL24 分钟前
深入理解 PropertySource 与优先级:Spring Boot/Spring Cloud 配置体系的底层原理
spring boot·后端·spring cloud
零雲25 分钟前
java面试:@Resource和@Autowired的区别
java·开发语言·面试
liu****27 分钟前
01_NumPy讲义
开发语言·python·numpy·python高级语法