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

国家重点项目建设部网站湖南长沙微信平台号

国家重点项目建设部网站,湖南长沙微信平台号,wordpress 视频列表,wordpress精简版下载地址⛰️个人主页: 蒾酒 #x1f525;系列专栏#xff1a;《spring boot实战》 #x1f30a;山高路远#xff0c;行路漫漫#xff0c;终有归途。 目录 前置条件 目的 主要步骤 定义自定义异常类 创建全局异常处理器 手动抛出自定义异常 前置条件 已经初始化好一个…  ⛰️个人主页:     蒾酒 系列专栏《spring boot实战》 山高路远行路漫漫终有归途。 目录 前置条件 目的 主要步骤 定义自定义异常类 创建全局异常处理器 手动抛出自定义异常 前置条件 已经初始化好一个spring boot项目且版本为3X项目可正常启动。 作者版本为3.2.2 初始化教程 新版idea(2023)创建spring boot3项目-CSDN博客https://blog.csdn.net/qq_62262918/article/details/135785412?spm1001.2014.3001.5501 目的 Spring Boot应用程序开发中会遇到各种异常有可预知的也有不可预知的我们很少会每个过程做单独异常处理通常会将各种类型的异常处理过程解耦出来保证业务逻辑单一、相关异常处理单一。 通常将异常进行处理封装一下对应错误信息返回友好信息。避免把异常直接给前端、用户。 反例异常直接返回(不友好) 正例处理后返回提示信息(友好) 主要步骤 定义自定义异常类 下面我们定义几个自定义异常 1.账号不存在异常 import com.mijiu.commom.enumerate.ResultEnum; import lombok.Getter;/*** 账户不存在异常** author mijiupro*/ Getter public class AccountNotFoundException extends RuntimeException {private final ResultEnum resultEnum;public AccountNotFoundException(ResultEnum resultEnum) {this.resultEnum resultEnum;} } 2.密码错误异常 import com.mijiu.commom.enumerate.ResultEnum; import lombok.Getter;/*** 密码错误异常** author mijiupro*/ Getter public class PasswordErrorException extends RuntimeException {private final ResultEnum resultEnum;public PasswordErrorException(ResultEnum resultEnum) {this.resultEnum resultEnum;}} 3. 令牌过期异常 import com.mijiu.commom.enumerate.ResultEnum; import lombok.Getter;/*** 令牌过期异常** author mijiupro*/ Getter public class TokenOverdueException extends RuntimeException {private final ResultEnum resultEnum;public TokenOverdueException(ResultEnum resultEnum) {this.resultEnum resultEnum;} } 对于各种异常的错误码以及提示内容通常使用枚举类如下 import lombok.Getter;/*** author mijiupro*/ Getter public enum ResultEnum {/* 成功状态码 */SUCCESS(1, 操作成功),/* 错误状态码 */FAIL(0, 操作失败),/* 参数错误10001-19999 */PARAM_IS_INVALID(10001, 参数无效),PARAM_IS_BLANK(10002, 参数为空),PARAM_TYPE_BIND_ERROR(10003, 参数格式错误),PARAM_NOT_COMPLETE(10004, 参数缺失),/* 用户错误20001-29999*/USER_NOT_LOGGED_IN(20001, 用户未登录请先登录),USER_LOGIN_ERROR(20002, 账号不存在或密码错误),USER_ACCOUNT_FORBIDDEN(20003, 账号已被禁用),USER_NOT_EXIST(20004, 用户不存在),USER_HAS_EXISTED(20005, 用户已存在),/* 系统错误40001-49999 */FILE_MAX_SIZE_OVERFLOW(40003, 上传尺寸过大),FILE_ACCEPT_NOT_SUPPORT(40004, 上传文件格式不支持),/* 数据错误50001-599999 */RESULT_DATA_NONE(50001, 数据未找到),DATA_IS_WRONG(50002, 数据有误),DATA_ALREADY_EXISTED(50003, 数据已存在),AUTH_CODE_ERROR(50004, 验证码错误),/* 权限错误70001-79999 */PERMISSION_UNAUTHENTICATED(70001, 此操作需要登陆系统),PERMISSION_UNAUTHORIZED(70002, 权限不足无权操作),PERMISSION_EXPIRE(70003, 登录状态过期),PERMISSION_TOKEN_EXPIRED(70004, token已过期),PERMISSION_LIMIT(70005, 访问次数受限制),PERMISSION_TOKEN_INVALID(70006, 无效token),PERMISSION_SIGNATURE_ERROR(70007, 签名失败);// 状态码int code;// 提示信息String message;ResultEnum(int code, String message) {this.code code;this.message message;}public int code() {return code;}public String message() {return message;}public void setCode(int code) {this.code code;}public void setMessage(String message) {this.message message;} } 创建全局异常处理器 需要创建一个全局异常处理器类用于捕获和处理所有的异常。可以使用ControllerAdvice  或者RestControllerAdvice注解将该类标记为全局异常处理器并使用ExceptionHandler 注解定义具体的异常处理方法。例如创建一个名为 GlobalExceptionHandler 的全局异常处理器类 import com.mijiu.commom.exception.AccountNotFoundException; import com.mijiu.commom.exception.PasswordErrorException; import com.mijiu.commom.exception.TokenOverdueException; import com.mijiu.commom.result.Result; import com.mijiu.commom.enumerate.ResultEnum; import lombok.extern.slf4j.Slf4j; import org.springframework.http.HttpStatus; import org.springframework.web.bind.annotation.*;/*** author mijiupro*/ RestControllerAdvice(basePackages com.mijiu.controller) ResponseBody Slf4j public class GlobalExceptionHandler {// 账号不存在异常ExceptionHandler(AccountNotFoundException.class)ResponseStatus(HttpStatus.BAD_REQUEST)public ResultString handleAccountNotFoundException(AccountNotFoundException ex) {return Result.error(ex.getResultEnum());}// 密码错误异常ExceptionHandler(PasswordErrorException.class)ResponseStatus(HttpStatus.BAD_REQUEST)public ResultString handlePasswordErrorException(PasswordErrorException ex) {return Result.error(ex.getResultEnum());}// 登录状态过期异常ExceptionHandler(TokenOverdueException.class)ResponseStatus(HttpStatus.UNAUTHORIZED)public Result? handleTokenOverdueException(TokenOverdueException ex){return Result.error(ex.getResultEnum());}/**** 通用异常处理*/ExceptionHandler(Exception.class)public ResultString exceptionHandler(Exception ex) {log.error(ex.getMessage());return Result.error(ResultEnum.FAIL);} } 对于不可预知的异常通常直接捕获所有异常父类Exception异常即可 这段代码会触发ArithmeticException 类似这种的不可预知异常会有很多它们都继承自Exception所以全局拦截Exception进行处理即可。 对于异常的处理返回的信息通常用统一格式封装 import com.mijiu.commom.enumerate.ResultEnum; import lombok.Data;/*** author mijiupro*/Data public class ResultT {// 操作代码Integer code;// 提示信息String message;// 结果数据T data;public Result(ResultEnum resultCode) {this.code resultCode.code();this.message resultCode.message();}public Result(ResultEnum resultCode, T data) {this.code resultCode.code();this.message resultCode.message();this.data data;}public Result(String message) {this.message message;}//成功返回封装-无数据public static ResultString success() {return new ResultString(ResultEnum.SUCCESS);}//成功返回封装-带数据public static T ResultT success(T data) {return new ResultT(ResultEnum.SUCCESS, data);}//失败返回封装-使用默认提示信息public static ResultString error() {return new ResultString(ResultEnum.FAIL);}//失败返回封装-使用返回结果枚举提示信息public static ResultString error(ResultEnum resultCode) {return new ResultString(resultCode);}//失败返回封装-使用自定义提示信息public static ResultString error(String message) {return new ResultString(message);} } 手动抛出自定义异常 在业务代码中抛出对应业务自定义异常 有参构造传递错误枚举信息(状态码错误内容)全局异常捕获并从自定义异常类拿到相关返回信息统一封装返回。 像这样直接抛出即可
http://www.hkea.cn/news/14322324/

相关文章:

  • centos6.3 网站开发火蝠电商代运营公司
  • 电话用网站做综合布线新航道培训机构怎么样
  • 做 网站 技术支持 抓获 互助南宁市住房和城乡建设局
  • 中山建网站找哪家手绘教学网站
  • 网站建设创业项目简介赣州网站优化制作
  • 苏州知名网站建设公司关于地产设计网站
  • 捷讯官网 网站建设网站做子域名
  • 做一小说网站要花多钱wordpress 小说网站
  • 重庆最新情况 最新消息网站网站怎么优化关键词排名
  • 最好的dm单网站建设永嘉县住房建设局网站
  • 河北省建设局网站首页企业计划书怎么写
  • 网站备案 湖北怎么做网页制作网站模板
  • 河源和平县建设局网站百度关键词排名原理
  • 网站宣传册怎么做丹徒网站建设多少钱
  • 网站图怎么做会高清网络销售网站有哪些
  • 一个公司多个网站做优化优质院校 建设网站
  • 西宁做网站的好公司wordpress+pdo+mysql扩展
  • 天津市建设执业资格注册中心网站应聘ui设计师自我介绍
  • 做医药商城网站的公司吗机票售票网站开发
  • 电商网站建设懂你所需自建站成本
  • 网站主机注册做网站应该买什么服务器
  • 做编程的网站有哪些内容桂林市天气预报15天
  • 网站开发注册流程以及收费莒县城阳网站建设
  • 四川集团网站建设海南网络电视台
  • 机关门户网站建设要求设计新闻发布网站模板
  • 优书网书库完备的常州网站优化
  • 个人怎么制作网站湖北网站开发培训
  • 赣州营销型网站策划wordpress数据库中文
  • 茂名公司网站开发网络营销与电子商务的关系
  • 建设医院网站ppt模板学习php网站开发