`
richand730
  • 浏览: 3468 次
社区版块
存档分类
最新评论

SpringBoot添加全局异常

 
阅读更多

编写异常枚举

public enum BizError {
    SYSTEM_ERROR("00000","系统异常"),
    NOT_PERMISSION_ERROR("00001","没有操作权限");

    private final String errorCode;
    private final String errorDesc;

    public String getErrorCode() {
        return errorCode;
    }

    public String getErrorDesc() {
        return errorDesc;
    }

    BizError(String errorCode, String errorDesc){
        this.errorCode = errorCode;
        this.errorDesc = errorDesc;
    }
}

 

自定义异常类

public class TestException extends RuntimeException{
    private String errorMessage;
    private String errorCode;

    public TestException(BizError bizError){
        this.errorCode = bizError.getErrorCode();
        this.errorMessage = bizError.getErrorDesc();
    }

    public JSONObject toJson() {
        return JSONUtil.createObj().put("errorCode",errorCode).put("errorMessage",errorMessage);
    }
}

 

编写异常处理类

@Slf4j
@ControllerAdvice
public class BasicExceptionHandler {

    @ExceptionHandler
    public void handler(Exception e, HandlerMethod handlerMethod, HttpServletResponse response){
        if (e instanceof TestException){
            ResultUtil.responseJson(response,((TestException)e).toJson());
        }else {
            log.error("{} method name: {}() handler error",handlerMethod.getBeanType(),handlerMethod.getMethod().getName(),e);
            ResultUtil.responseJson(response,new TestException(BizError.SYSTEM_ERROR).toJson());
        }
    }
}

 

测试类

@Slf4j
@RestController
public class TestController {
    @GetMapping("/test")
    public String test(int result) throws Exception {
        if (result == 1) {
            log.info("【test2】被执行了。。。。。");
            return "我一直都在,卟离卟弃";
        }
        else if (result == 2){
            throw new TestException(BizError.NOT_PERMISSION_ERROR);
        }
        throw new TestException(BizError.SYSTEM_ERROR);
    }
}
 
 
分享到:
评论

相关推荐

    springboot入门(全局 异常拦截)

    在Spring Boot框架中,全局异常处理是不可或缺的一部分,它使得我们的应用更加健壮,能够优雅地处理各种可能出现的错误情况。下面将详细讲解Spring Boot如何实现全局异常拦截,并结合给出的"spring-boot-01"文件,...

    springboot全局异常处理

    在Spring Boot应用中,全局异常处理是至关重要的一个部分,它能确保系统在遇到错误时,仍然能够优雅地响应客户端,提供友好的错误信息,而不是返回默认的、未经处理的堆栈跟踪。本教程将详细介绍如何在Spring Boot中...

    Springboot之自定义全局异常处理的实现

    Springboot之自定义全局异常处理的实现 Springboot之自定义全局异常处理的实现是指在Springboot框架中,通过自定义异常处理器来捕获和处理全局异常的方法。这种方法可以帮助开发者更好地处理程序中的异常,提高...

    springboot如何添加全局异常捕获类

    主要介绍了springboot如何添加全局异常捕获类,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    springboot全局异常处理代码实例

    在 Spring Boot 项目中,使用全局异常处理机制需要在 `pom.xml` 文件中添加相应的依赖项。例如,需要添加 Spring Boot Web 依赖、Spring Boot Test 依赖、MyBatis 依赖、MySQL 驱动依赖、Alibaba Druid 数据库连接池...

    SpringBoot全局异常与数据校验的方法

    本文将详细介绍如何在SpringBoot中实现全局异常处理和数据校验。 首先,我们需要理解什么是全局异常处理。全局异常处理是指在应用程序中设置一个统一的机制,当发生异常时,能够捕获并处理这些异常,而不是让它们...

    springboot 常用配置,模板引擎,全局异常处理使用代码

    1. **全局异常处理**: Spring Boot 提供了优雅的方式来进行全局异常处理,通过实现`ErrorController`接口或者自定义`@ControllerAdvice`类,可以捕获并统一处理所有控制器层的异常。例如,创建一个`...

    SpringBoot中异常处理.doc

    1. **全局异常处理**: SpringBoot允许我们定义全局的异常处理器,通常通过使用`@RestControllerAdvice`注解的类来实现。这样可以捕获并处理所有控制器方法抛出的异常,包括自定义异常和系统内置异常。例如,我们可以...

    智能GPT图书管理系统(SpringBoot2Vue2),全局异常拦截器,登录校验拦截器,Echarts展示借阅量,可添加爬虫功

    智能GPT图书管理系统(SpringBoot2Vue2),全局异常拦截器,登录校验拦截器,Echarts展示借阅量,可添加爬虫功能获取图书数据。API认证采用JWT。后端CORS跨域支持。HTTPStatusCode表示状态。数据返回格式JSON。接入GPT...

    智能GPT图书管理系统(SpringBoot2+Vue2)全局异常拦截器登录校验拦截器Echarts展示借阅量可添加爬虫

    智能GPT图书管理系统(SpringBoot2+Vue2),全局异常拦截器,登录校验拦截器,Echarts展示借阅量,可添加爬虫功能获取图书数据。API认证采用JWT。后端CORS跨域支持。HTTP Status Code表示状态。数据返回格式JSON。接入...

    springboot整合thymeleaf+maven实现异常处理页面

    在这个“springboot整合thymeleaf+maven实现异常处理页面”的案例中,我们将探讨如何在 SpringBoot 应用中整合 Thymeleaf 和 Maven,以及如何设置自定义的全局异常处理机制,使得当应用程序出现异常时,能够优雅地将...

    源码剖析Springboot自定义异常.docx

    在这个例子中,`@ControllerAdvice`注解表明这是一个全局异常处理器,而`@ExceptionHandler(Exception.class)`则表示这个方法将捕获所有未被其他异常处理器处理的异常。当方法抛出异常时,`myExceptionHandle`方法会...

    SpringBoot基础入门demo

    在SpringBoot中,我们可以利用@ControllerAdvice和@ExceptionHandler来实现全局的异常处理。@ControllerAdvice注解标记的类会作为全局的异常处理器,@ExceptionHandler注解的方法会捕获特定类型的异常并进行处理。...

    SpringBoot总结

    SpringBoot提供了全局异常处理机制,可以通过`@ControllerAdvice`和`@ExceptionHandler`定义全局的异常处理器。 ### 8. 日志系统 SpringBoot默认使用Logback作为日志系统,也可以通过配置切换到其他日志框架。`...

    Springboot-的各种demo.rar

    Springboot-log 是给项目添加log 管理 Springboot-mybatis-config 这个是mybatis 的...SpringBoot-multi-source SpringBoot 多数据源配置,全局异常自定义处理 SpringBoot2-mybatisplus SpringBoot 与mybatis-plus 整

    springboot和一些主流框架的整合的各个基本demo

    hello word 可能性版本 Springboot-web 网页版本 springboot-log 是给项目添加日志管理 springboot-mybatis-config 这是mybatis的配置版本 ...SpringBoot-多源 SpringBoot多数据源配置,全局异常自定义处理

    springboot SSM整合

    为提高代码的可维护性和用户体验,项目通常会实现全局异常处理。在SpringBoot中,我们可以通过实现`ErrorController`接口或自定义`@ControllerAdvice`注解的类来捕获并处理所有可能出现的异常。这样,无论何时何地...

    springboot 和一些主流框架的整合的各个基本demo

    hello word 最简单的版本 Springboot-web web 版本的 Springboot-log 是给项目添加log 管理 Springboot-mybatis-config 这个是mybatis 的配置...SpringBoot-multi-source SpringBoot 多数据源配置,全局异常自定义处理

    springboot MVC简单demo

    通过`@ControllerAdvice`和`@ExceptionHandler`可以全局处理异常。同时,通过i18n资源文件可以实现国际化。 9. **安全控制** SpringBoot集成了Spring Security,可以方便地实现登录、权限控制等功能。通过`@...

    springboot常用框架

    基于yml的多profile配置、基于properties的多profile、添加数据验证、配置错误页、全局异常处理、配置Tomcat运行、配置https访问路径、信息显示、 内置对象、显示对象信息、文件上传、使用文件服务器、拦截器、配置...

Global site tag (gtag.js) - Google Analytics