当前位置: 首页 > wzjs >正文

中国空间站的意义wordpress the7安装教程

中国空间站的意义,wordpress the7安装教程,网站域名区别吗,wordpress 历史上今天在 Java 开发中(尤其是 Spring 框架中),全局异常处理器是一种集中处理应用程序中所有未捕获异常的机制。它可以帮助开发者统一异常响应格式、简化代码、提升可维护性。 在做web开发时,通常开发人员都会自定义一些返回状态码以及对…

在 Java 开发中(尤其是 Spring 框架中),全局异常处理器是一种集中处理应用程序中所有未捕获异常的机制。它可以帮助开发者统一异常响应格式、简化代码、提升可维护性

在做web开发时,通常开发人员都会自定义一些返回状态码以及对应的状态信息的枚举类(接下来统称为ResultCodeEnum)。而这些ResultCodeEnum不仅仅可以Cotroller层中将响应结果响应给前端,同样也用在通用异常/自定义异常中,将异常信息响应给前端。但是为了将异常信息响应给前端,就需要开发人员在每一个需要捕获通用异常/自定义异常的Controller层中使用try-catch进行捕获和响应,这就会造成大量的代码复用,也会加大开发人员的压力,无法专注于业务。这时就可以使用全局异常处理器,帮助开发人员统一处理这些异常并响应给前端。

1. 为什么需要全局异常处理器

  1. 统一异常响应格式 避免每个控制器方法都写重复的 try-catch 代码,返回统一的 JSON 结构(如 { code, message, data })。

  2. 集中管理异常逻辑 将异常处理与业务逻辑解耦,代码更清晰。

  3. 提升用户体验 客户端能收到结构化的错误信息(如错误码、友好提示)。

  4. 日志记录 可全局记录异常日志,便于排查问题。

2. Spring中全局异常处理器的实现

2.1 定义全局异常处理器

在Spring 提供了 @ControllerAdvice@ExceptionHandler 注解来实现全局异常处理。

以下使用全局异常处理器的情况为:响应给前端的结果为自定义的响应类Result和自定义的异常类MyException,更多使用情况可参考官方文档。

@ControllerAdvice // 标记为全局异常处理器
public class GlobalExceptionHandler {@ExceptionHandler(MyException.class) // 处理通用异常Exception@ResponseBody // // 处理通用异常Exceptionpublic Result error(Exception e){e.printStackTrace();return Result.fail(); // 返回自定义响应类的失败状态}
}

也可以使用@RestControllerAdvice ,相当于 @ControllerAdvice + @ResponseBody

2.2 自定义异常类MyException

@Data
public class MyException extends RuntimeException {
​//异常状态码private Integer code;/*** 通过状态码和错误消息创建异常对象* @param message* @param code*/public LeaseException(String message, Integer code) {super(message);this.code = code;}
​/*** 根据响应结果枚举对象创建异常对象* @param resultCodeEnum*/public LeaseException(ResultCodeEnum resultCodeEnum) {super(resultCodeEnum.getMessage());this.code = resultCodeEnum.getCode();}
​@Overridepublic String toString() {return "LeaseException{" +"code=" + code +", message=" + this.getMessage() +'}';}
}

2.3 在全局异常处理器中增加自定义异常类的处理逻辑

@ControllerAdvice // 标记为全局异常处理器
public class GlobalExceptionHandler {@ExceptionHandler(MyException.class) // 处理通用异常Exception@ResponseBody // // 处理通用异常Exceptionpublic Result error(Exception e){e.printStackTrace();return Result.fail(); // 返回自定义响应类的失败状态}// 增加自定义异常类的处理逻辑@ExceptionHandler(LeaseException.class)@ResponseBodypublic Result error(LeaseException e){e.printStackTrace();return Result.fail(e.getCode(), e.getMessage());}
}
  • Result类中fail()方法的处理逻辑:

public static <T> Result<T> fail(Integer code, String message) {Result<T> result = build(null); // build()方法是用于构造Result类的,使用了构造工厂模式result.setCode(code);result.setMessage(message);return result;
}

2.4 全局异常处理器使用场景详解

  
  if (count > 0) {throw new MyException(ResultCodeEnum.UNLOG_ERROR);}
  • 假设在在业务代码中,判断count是否大于0,如果大于0就抛出自定义异常并响应异常信息给前端

  • 通过响应结果枚举对象构造自定义异常对象。

  • 抛出自定义异常后,全局异常处理器会捕获到该异常(因为定义全局异常处理器时,添加了@ExceptionHandler(MyException.class))。

  • 全局异常处理器就会根据定义好的处理逻辑对异常进行处理。

2.5 注意

  • 全局异常处理功能由SpringMVC提供,因此需要在Spring Boot的pom.xml中引入如下依赖:

<!--spring-web-->
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId>
</dependency>
  • 优先处理具体异常 将具体的异常处理(如 NullPointerException)放在通用异常(如 Exception)之前,避免后者覆盖前者。

  • 自定义异常层级 设计业务异常继承体系(如 BusinessException, ValidationException),便于分类处理。

3. 全局异常处理器的优点

  1. 统一异常响应格式,提升用户体验。

  2. 集中管理异常逻辑,减少代码冗余。

  3. 灵活处理各类异常(参数校验、数据库错误、业务异常等)。

  4. 完善日志记录,方便问题排查。


文章转载自:

http://xLsjBM25.ysLLp.cn
http://RlcvKcE0.ysLLp.cn
http://CAOQDSfi.ysLLp.cn
http://oOCL8f5V.ysLLp.cn
http://XcPwNNc9.ysLLp.cn
http://0KrwgIbg.ysLLp.cn
http://jUlhFqyb.ysLLp.cn
http://B420yHaP.ysLLp.cn
http://WbG0dTjJ.ysLLp.cn
http://tIJx4rEb.ysLLp.cn
http://xwrtIThs.ysLLp.cn
http://X3k4HcYo.ysLLp.cn
http://1gpRplqa.ysLLp.cn
http://K38F3eWU.ysLLp.cn
http://hmrjS47w.ysLLp.cn
http://UB63OF7W.ysLLp.cn
http://gUokyvnP.ysLLp.cn
http://lhJTeB3c.ysLLp.cn
http://FIJpi0Bi.ysLLp.cn
http://BsAqDupe.ysLLp.cn
http://n2nCgomv.ysLLp.cn
http://J55TT26V.ysLLp.cn
http://bWZTkI8X.ysLLp.cn
http://4eUau5Ru.ysLLp.cn
http://XNWqb61B.ysLLp.cn
http://NpcaMw7g.ysLLp.cn
http://XJGlfvH8.ysLLp.cn
http://v7ntxaxl.ysLLp.cn
http://jYqjV4Gc.ysLLp.cn
http://n2gkdPB7.ysLLp.cn
http://www.dtcms.com/wzjs/726698.html

相关文章:

  • 网站建设方式天象集团ui培训
  • 怎么做论坛网站怎么开网店呢
  • 网站开发百灵鸟优化哪个网站亲子游做的好
  • 手机膜+东莞网站建设wordpress 文库插件
  • 网站如何更新维护域名备案
  • 网站建设开发费用入什么科目销售网站内容设计
  • 运动网站源码wordpress 自带主题
  • 网页制作淘宝网站建设网站的pv统计功能怎样做
  • 沈阳设计网站网站建设的企业
  • 网站推广优化排名教程专门做高仿的网站
  • 微信网站搭建价格建站系统主要包括
  • 设计教程网站交互网站怎么做
  • 安吉网站建设公司济南高品质网站制作
  • 网站排名优化公司哪家好wordpress plugins权限
  • 传奇页游平台关键词seo优化
  • 做阿里国际网站多少钱led网站制作
  • 保定行业网站江苏工程建设信息网官网
  • aspnet网站开发技术怎么建立一个网站开展业务
  • 聊城网站那家做的好免费windows云服务器
  • 旅游网站在提高用户体验方面应做哪些工作seo诊断优化专家
  • 北京高端定制网站建设富阳区建设工程质监站网站
  • seo网站推广价格网页传奇游戏中心
  • 企业类网站包括哪些中国纪检监察网站首页
  • 中国住房和城乡建设部网站建造师北京网站建设58
  • 企业门户网站的主要技术指标网站建设毕业答辩ppt模板下载
  • 广撒网网站网站设计目前和将来的就业前景
  • 每个城市建设规划在哪个网站男生最喜欢的浏览器
  • 网站商城app 建设方案深圳市网站建设有补贴吗
  • 丽水网站域名注册服务公司wordpress一键拨号
  • 常州建站软件怎么做网站首页关键词