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

网站建站时间wordpress 插件 调用

网站建站时间,wordpress 插件 调用,今天东莞封路,怎样搭建网站视频教程在现代Web开发中#xff0c;异常处理是一个不可或缺的部分。良好的异常处理不仅能提高系统的健壮性#xff0c;还能提升用户体验。在Spring Boot中#xff0c;全局异常处理的实现可以通过使用RestControllerAdvice注解来完成。本文将详细介绍如何使用RestControllerAdvice和…在现代Web开发中异常处理是一个不可或缺的部分。良好的异常处理不仅能提高系统的健壮性还能提升用户体验。在Spring Boot中全局异常处理的实现可以通过使用RestControllerAdvice注解来完成。本文将详细介绍如何使用RestControllerAdvice和ExceptionHandler来统一处理异常并给出具体的实现示例。 1. RestControllerAdvice概述 RestControllerAdvice是Spring MVC提供的一个功能强大的注解用于全局处理控制器中的异常。它相当于ControllerAdvice和ResponseBody的组合可以用于定义以下三种功能 ExceptionHandler处理特定的异常并将响应返回给前端。InitBinder预处理Web请求数据的绑定。ModelAttribute将数据绑定到模型中以便在控制器的RequestMapping方法中使用。 RestControllerAdvice自动被Spring的组件扫描机制检测到若应用通过MVC命令空间或MVC Java编程方式配置该功能默认自动开启。 2. 实现全局异常处理 在实现全局异常处理时我们通常会定义一个异常处理类这个类中包含多个异常处理方法每个方法对应一种或多种异常类型。下面是一个典型的实现示例。 2.1 全局异常处理器 import com.sugon.cloud.lowcode.result.ReturnResult; import lombok.extern.slf4j.Slf4j; import org.mybatis.spring.MyBatisSystemException; import org.springframework.web.HttpRequestMethodNotSupportedException; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestControllerAdvice;import javax.naming.AuthenticationException; import javax.servlet.http.HttpServletRequest;import static com.sugon.cloud.lowcode.constants.SplitCharacter.LEFT_PARENTHESES; import static com.sugon.cloud.lowcode.constants.SplitCharacter.RIGHT_PARENTHESES; import static com.sugon.cloud.lowcode.result.CodeMessageEnum.*;RestControllerAdvice Slf4j public class GlobalExceptionHandler {ExceptionHandler(value BizException.class)ResponseBodypublic ReturnResult bizExceptionHandler(HttpServletRequest req, BizException e) {log.error(发生业务异常: {}, 请求接口: {}, e.getMessage(), req.getRequestURI());return ReturnResult.error(e.getCode(), e.getMessage());}ExceptionHandler(value NullPointerException.class)ResponseBodypublic ReturnResult exceptionHandler(HttpServletRequest req, NullPointerException e) {log.error(空指针异常信息: {}, 请求接口: {}, e, req.getRequestURI());return ReturnResult.error(NULL_POINT_ERROR_EXCEPTION.getCode(),NULL_POINT_ERROR_EXCEPTION.getMessage() RIGHT_PARENTHESES e.getMessage() LEFT_PARENTHESES);}ExceptionHandler(value HttpRequestMethodNotSupportedException.class)ResponseBodypublic ReturnResult methodNotSupportedExceptionHandler(HttpServletRequest req, Exception e) {log.error(请求方法异常信息: {}请求接口: {}, e, req.getRequestURI());return ReturnResult.error(REQUEST_METHOD_ERROR.getCode(),REQUEST_METHOD_ERROR.getMessage() RIGHT_PARENTHESES e.getMessage() LEFT_PARENTHESES);}ExceptionHandler(value MyBatisSystemException.class)ResponseBodypublic ReturnResult sqlSyntaxErrorExceptionHandler(HttpServletRequest req, Exception e) {log.error(MyBatis系统异常信息: {}请求接口: {}, e, req.getRequestURI());return ReturnResult.error(INNER_FRAME_EXCEPTION.getCode(),INNER_FRAME_EXCEPTION.getMessage() RIGHT_PARENTHESES e.getMessage() LEFT_PARENTHESES);}ExceptionHandler(value AuthenticationException.class)public ReturnResult incorrectCredentialsException(HttpServletRequest request, AuthenticationException e) {log.error(用户名或密码不正确: {}, 请求接口: {}, e, request.getRequestURI());return ReturnResult.error(USER_CREDENTIALS_ERROR);}ExceptionHandler(value UserException.class)public ReturnResult incorrectUserException(HttpServletRequest request, UserException e) {log.error(用户信息异常: {}, 请求接口: {}, e, request.getRequestURI());return ReturnResult.error(e.getCode(), e.getMessage());}ExceptionHandler(value Exception.class)ResponseBodypublic ReturnResult exceptionHandler(HttpServletRequest req, Exception e) {e.printStackTrace();log.error(未知异常: {}, 请求接口: {}, e, req.getRequestURI());return ReturnResult.error(INTERNAL_SERVER_ERROR.getCode(),INTERNAL_SERVER_ERROR.getMessage() RIGHT_PARENTHESES e.getMessage() LEFT_PARENTHESES);} }2.2 自定义业务异常类 import com.sugon.cloud.lowcode.result.BaseResultInterface; import com.sugon.cloud.lowcode.result.CodeMessageEnum; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty;ApiModel(description 业务异常数据) public class BizException extends RuntimeException implements BaseResultInterface {private static final long serialVersionUID 1L;ApiModelProperty(value 错误码)private String code;ApiModelProperty(value 错误信息)private String message;public BizException() {super();}public BizException(CodeMessageEnum codeMessageEnum) {super(codeMessageEnum.getCode());this.code codeMessageEnum.getCode();this.message codeMessageEnum.getMessage();}public BizException(CodeMessageEnum codeMessageEnum, Throwable cause) {super(codeMessageEnum.getCode(), cause);this.code codeMessageEnum.getCode();this.message codeMessageEnum.getMessage();}public BizException(CodeMessageEnum codeMessageEnum, String message, Throwable cause) {super(codeMessageEnum.getCode(), cause);this.code codeMessageEnum.getCode();this.message message;}public BizException(String message) {super(message);this.message message;}public BizException(String code, String message) {super(code);this.code code;this.message message;}public BizException(String code, String message, Throwable cause) {super(code, cause);this.code code;this.message message;}Overridepublic Throwable fillInStackTrace() {return this;}Overridepublic String getCode() {return this.code;}Overridepublic String getMessage() {return this.message;} }3. 统一返回格式 在上述代码中所有的异常处理方法返回的是ReturnResult对象它封装了返回给前端的数据。ReturnResult类的设计使得前端可以统一解析和展示错误信息。 3.1 返回结果类 import com.alibaba.fastjson.JSONObject; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; import lombok.Setter;import static com.sugon.cloud.lowcode.result.CodeMessageEnum.*;Setter Getter ApiModel(description 返回响应数据) public class ReturnResultT {ApiModelProperty(value 状态码)private String code;ApiModelProperty(value 响应信息)private String message;ApiModelProperty(value 响应对象)private T result;ApiModelProperty(value 是否成功)private boolean success true;public ReturnResult() {}public ReturnResult(CodeMessageEnum codeMessageEnum) {this.code codeMessageEnum.getCode();this.message codeMessageEnum.getMessage();}public static ReturnResult success() {return success(null);}public static T ReturnResultT success(T data) {return success(SUCCESS, data);}public static T ReturnResultT loginSuccess(T data) {return success(SUCCESS_LOGIN, data);}public static ReturnResult loginOutSuccess() {return success(SUCCESS_LOGOUT, null);}private static T ReturnResultT success(CodeMessageEnum codeMessageEnum, T data) {ReturnResultT result new ReturnResult();result.setCode(codeMessageEnum.getCode());result.setMessage(codeMessageEnum.getMessage());result.setResult(data);return result;}public static ReturnResult error(CodeMessageEnum codeMessageEnum) {return error(codeMessageEnum.getCode(), codeMessageEnum.getMessage());}public static ReturnResult error(CodeMessageEnum codeMessageEnum, String message) {return error(codeMessageEnum.getCode(), message);}public static ReturnResult error(String code, String message) {ReturnResult result new ReturnResult();result.setCode(code);result.setMessage(message);result.setSuccess(false);return result;}Overridepublic String toString() {return JSONObject.toJSONString(this);} }4. 总结 通过RestControllerAdvice和ExceptionHandler我们可以在Spring Boot应用中实现全局异常处理统一管理和处理所有异常。这样不仅可以 减少重复代码还能使代码更加整洁提高可维护性。同时通过统一的返回格式前端处理响应数据时也能更加方便。 希望这篇文章对您在Spring Boot中实现全局异常处理有所帮助。如有任何问题或建议欢迎交流探讨。
http://www.hkea.cn/news/14283725/

相关文章:

  • 湖北优化网站建设手表商城网站建设方案
  • 哪个网站域名解析网站建设如何上传图片
  • 网站如何做超级链接wordpress divi主题
  • 一个域名可以做中英文两个网站吗网站开发语言啥意思
  • 电子商务网站体系结构有哪些世界杯 网站模板
  • 国外有什么优秀的网站推荐响应式布局页面
  • 用wordpress仿一个网站模板绵阳免费网站建设
  • 原阳县建站塔山双喜找人做网站安全吗
  • 亚马逊品牌注册网站建设wordpress995
  • 周宁县建设局网站网站开发与app开发原理
  • 上海比较大的外贸公司有哪些关键词搜索优化
  • 开发网站需要租服务器盐城建设企业网站
  • 网站推广的平台网站关键词优化费用
  • 灌南县城乡建设局网站做民宿哪个网站好
  • wordpress excel搜索南昌seo网站建设
  • 重庆城乡建设局网站苏州网站建设数据网络
  • 唐山网站开发公司网页开发
  • 北京城乡建设网站导航网站织梦模板
  • 跨境电商网站建设成本网站建设销售工资多少
  • 苏州网站制作计划重庆装修公司避坑指南
  • 表格模板免费下载网站便宜质量好的国产手表
  • 阿里巴巴网官方网站做网站教程pdf
  • 常州网站排名推广哈尔滨响应式网站建设公司
  • 计算机网站的开发流程公司的帐如何做网站
  • 长沙建站做企业网站公司城镇建设部网站
  • 做网站用什么服务器好关于网站制作报价
  • 网站的建设意见量品定制和衣邦人哪个好
  • 网站建设 音频插件建筑网人才
  • 珠海网络公司网站建设公司网站备案怎么做
  • wordpress拖拽式建站主题网站更改模板 seo