编写异常枚举
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);
}
}
分享到:
相关推荐
在Spring Boot框架中,全局异常处理是不可或缺的一部分,它使得我们的应用更加健壮,能够优雅地处理各种可能出现的错误情况。下面将详细讲解Spring Boot如何实现全局异常拦截,并结合给出的"spring-boot-01"文件,...
在Spring Boot应用中,全局异常处理是至关重要的一个部分,它能确保系统在遇到错误时,仍然能够优雅地响应客户端,提供友好的错误信息,而不是返回默认的、未经处理的堆栈跟踪。本教程将详细介绍如何在Spring Boot中...
Springboot之自定义全局异常处理的实现 Springboot之自定义全局异常处理的实现是指在Springboot框架中,通过自定义异常处理器来捕获和处理全局异常的方法。这种方法可以帮助开发者更好地处理程序中的异常,提高...
主要介绍了springboot如何添加全局异常捕获类,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
在 Spring Boot 项目中,使用全局异常处理机制需要在 `pom.xml` 文件中添加相应的依赖项。例如,需要添加 Spring Boot Web 依赖、Spring Boot Test 依赖、MyBatis 依赖、MySQL 驱动依赖、Alibaba Druid 数据库连接池...
本文将详细介绍如何在SpringBoot中实现全局异常处理和数据校验。 首先,我们需要理解什么是全局异常处理。全局异常处理是指在应用程序中设置一个统一的机制,当发生异常时,能够捕获并处理这些异常,而不是让它们...
1. **全局异常处理**: Spring Boot 提供了优雅的方式来进行全局异常处理,通过实现`ErrorController`接口或者自定义`@ControllerAdvice`类,可以捕获并统一处理所有控制器层的异常。例如,创建一个`...
1. **全局异常处理**: SpringBoot允许我们定义全局的异常处理器,通常通过使用`@RestControllerAdvice`注解的类来实现。这样可以捕获并处理所有控制器方法抛出的异常,包括自定义异常和系统内置异常。例如,我们可以...
智能GPT图书管理系统(SpringBoot2Vue2),全局异常拦截器,登录校验拦截器,Echarts展示借阅量,可添加爬虫功能获取图书数据。API认证采用JWT。后端CORS跨域支持。HTTPStatusCode表示状态。数据返回格式JSON。接入GPT...
智能GPT图书管理系统(SpringBoot2+Vue2),全局异常拦截器,登录校验拦截器,Echarts展示借阅量,可添加爬虫功能获取图书数据。API认证采用JWT。后端CORS跨域支持。HTTP Status Code表示状态。数据返回格式JSON。接入...
在这个“springboot整合thymeleaf+maven实现异常处理页面”的案例中,我们将探讨如何在 SpringBoot 应用中整合 Thymeleaf 和 Maven,以及如何设置自定义的全局异常处理机制,使得当应用程序出现异常时,能够优雅地将...
在这个例子中,`@ControllerAdvice`注解表明这是一个全局异常处理器,而`@ExceptionHandler(Exception.class)`则表示这个方法将捕获所有未被其他异常处理器处理的异常。当方法抛出异常时,`myExceptionHandle`方法会...
在SpringBoot中,我们可以利用@ControllerAdvice和@ExceptionHandler来实现全局的异常处理。@ControllerAdvice注解标记的类会作为全局的异常处理器,@ExceptionHandler注解的方法会捕获特定类型的异常并进行处理。...
SpringBoot提供了全局异常处理机制,可以通过`@ControllerAdvice`和`@ExceptionHandler`定义全局的异常处理器。 ### 8. 日志系统 SpringBoot默认使用Logback作为日志系统,也可以通过配置切换到其他日志框架。`...
Springboot-log 是给项目添加log 管理 Springboot-mybatis-config 这个是mybatis 的...SpringBoot-multi-source SpringBoot 多数据源配置,全局异常自定义处理 SpringBoot2-mybatisplus SpringBoot 与mybatis-plus 整
hello word 可能性版本 Springboot-web 网页版本 springboot-log 是给项目添加日志管理 springboot-mybatis-config 这是mybatis的配置版本 ...SpringBoot-多源 SpringBoot多数据源配置,全局异常自定义处理
为提高代码的可维护性和用户体验,项目通常会实现全局异常处理。在SpringBoot中,我们可以通过实现`ErrorController`接口或自定义`@ControllerAdvice`注解的类来捕获并处理所有可能出现的异常。这样,无论何时何地...
hello word 最简单的版本 Springboot-web web 版本的 Springboot-log 是给项目添加log 管理 Springboot-mybatis-config 这个是mybatis 的配置...SpringBoot-multi-source SpringBoot 多数据源配置,全局异常自定义处理
通过`@ControllerAdvice`和`@ExceptionHandler`可以全局处理异常。同时,通过i18n资源文件可以实现国际化。 9. **安全控制** SpringBoot集成了Spring Security,可以方便地实现登录、权限控制等功能。通过`@...