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

全景网站如何建设wordpress document

全景网站如何建设,wordpress document,北京设计院排名100强,广州正佳极地海洋世界说明#xff1a;在完整的项目结构中#xff0c;我们通常会创建一个自定义的异常处理机制#xff0c;在系统可能出现异常的地方手动抛出这些异常#xff0c;可以快速定位到异常代码片段#xff0c;提供项目的可维护性。 本文介绍在SpringBoot项目中#xff0c;搭建一套自…说明在完整的项目结构中我们通常会创建一个自定义的异常处理机制在系统可能出现异常的地方手动抛出这些异常可以快速定位到异常代码片段提供项目的可维护性。 本文介绍在SpringBoot项目中搭建一套自定义异常处理机制。 统一响应结果 首先创建一个统一响应结果类如下用于统一后台的返回结果请求成功返回数据请求失败返回错误信息 import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor;import java.io.Serializable;/*** 后端统一返回结果*/ Data Builder AllArgsConstructor NoArgsConstructor public class ResultT implements Serializable {private static final long serialVersionUID 1L;/*** 编码1成功 0和其他数字为失败*/private Integer code;/*** 错误信息*/private String msg;/*** 数据*/private T data;/*** 成功并返回** param T* return*/public static T ResultT success() {ResultT result new ResultT();result.code 1;return result;}/*** 成功并返回数据** param object* param T* return*/public static T ResultT success(T object) {ResultT result new ResultT();result.data object;result.code 1;return result;}/*** 失败并返回信息** param msg* param T* return*/public static T ResultT error(String msg) {Result result new Result();result.msg msg;result.code 0;return result;} }然后创建两个接口用于用户登录根据ID查找用户如下 controller层 import com.hezy.pojo.entity.User; import com.hezy.pojo.vo.Result; import com.hezy.service.UserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*;RestController RequestMapping(/exception) public class UserController {Autowiredprivate UserService userService;PostMapping(/login)public Result login(RequestBody User user){return userService.login(user);}GetMapping(/get)public Result get(Integer id){return userService.getUser(id);} }Service实现类其中TODO表示待完成的部分 import cn.hutool.core.util.ObjUtil; import com.hezy.pojo.entity.User; import com.hezy.pojo.vo.Result; import com.hezy.service.UserService; import org.springframework.stereotype.Service;Service public class UserServiceImpl implements UserService {Overridepublic Result login(User user) {// 对user进行校验if (!ObjUtil.isAllNotEmpty(user, user.getUsername(), user.getPassword())) {return Result.error(非法参数异常);}// TODO 根据用户名查询数据库校验该用户是否存在if (true) {return Result.error(该用户不存在);}// TODO 保存用户信息到数据库return Result.success(user);}Overridepublic Result getUser(Integer id) {// 对id进行校验if (id null || id 0) {return Result.error(非法参数异常);}// TODO 根据用户名查询数据库, 校验用户是否存在if (true) {return Result.error(该用户不存在);}return Result.success(new User(id, 张三, 123456));} }用户实体类 import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor;import java.io.Serializable;Data AllArgsConstructor NoArgsConstructor public class User implements Serializable {private static final long serialVersionUID 1L;/*** id*/private Integer id;/*** 账号*/private String username;/*** 密码*/private String password; }启动项目运行 测试登录接口因为在if里面写死了所以返回错误信息 测试获取用户对象接口因为在if里面写死了所以返回错误信息 异常枚举 接下来对上面的异常进行统一处理。 首先创建一个异常的枚举类里面包含了异常状态码异常信息等如下 /*** 异常枚举类*/ public enum ExceptionEnum {PARAM_EXCEPTION(10001, 非法参数异常),PARAM_LACK(10002, 参数不全异常),UNKNOW_EXCEPTION(99999, 未知异常);private int status;private String message;ExceptionEnum(int status, String message) {this.status status;this.message message;}public int getStatus() {return status;}public String getMessage() {return message;} }自定义异常 创建一个自定义异常类继承RuntimeException类如下 import com.hezy.enums.ExceptionEnum;/*** 自定义异常*/ public class MyException extends RuntimeException{/*** 异常枚举*/private ExceptionEnum exceptionEnum;public MyException(ExceptionEnum exceptionEnum) {super(exceptionEnum.getMessage());this.exceptionEnum exceptionEnum;}public ExceptionEnum getExceptionEnum() {return exceptionEnum;}/*** 手动抛出异常* param exceptionEnum* return*/public static MyException throwException(ExceptionEnum exceptionEnum){return new MyException(exceptionEnum);} }再创建一个异常的controller自定义捕获对应的异常并打印信息 import com.hezy.enums.ExceptionEnum; import com.hezy.pojo.vo.Result; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.RestControllerAdvice;/*** 全局异常处理器*/ RestControllerAdvice Slf4j public class GlobalException {/*** 自定义异常* param e* return*/ExceptionHandler(MyException.class)public Result handleException(MyException e){log.error(e.getMessage());return Result.builder().code(0).msg(e.getExceptionEnum().getMessage()).build();}/*** 全局异常* param e* return*/ExceptionHandler(Exception.class)public Result handleException(Exception e){log.error(e.getMessage());return Result.builder().code(0).msg(ExceptionEnum.UNKNOW_EXCEPTION.getMessage()).build();} }最后对前面业务实现类里面的代码进行修改当参数校验错误时直接抛出异常如下 import cn.hutool.core.util.ObjUtil; import com.hezy.enums.ExceptionEnum; import com.hezy.exception.MyException; import com.hezy.pojo.entity.User; import com.hezy.pojo.vo.Result; import com.hezy.service.UserService; import org.springframework.stereotype.Service;Service public class UserServiceImpl implements UserService {Overridepublic Result login(User user) {// 对user进行校验其中user、username、password都不能为空if (!ObjUtil.isAllNotEmpty(user, user.getUsername(), user.getPassword())) {throw new MyException(ExceptionEnum.PARAM_LACK);}// TODO 根据用户名查询数据库校验该用户是否存在if (true) {return Result.error(该用户不存在);}// TODO 保存用户信息到数据库return Result.success(user);}Overridepublic Result getUser(Integer id) {// id null参数不全异常if (id null) {throw new MyException(ExceptionEnum.PARAM_LACK);}// id 0非法参数异常if (id 0) {throw new MyException(ExceptionEnum.PARAM_EXCEPTION);}// TODO 根据用户名查询数据库, 校验用户是否存在if (true) {return Result.error(该用户不存在);}return Result.success(new User(id, 张三, 123456));} }启动项目测试 当user中的username为空时 当获取对象的id 0时 当发生其他未知异常时如post请求的接口我们使用get方式发送时 就会被全局异常捕获到并在控制台打印报错信息 如果此时需要新增一个异常只需要在ExceptionEnum异常枚举类中新增一个枚举项即可如下 新增一个登录异常 /*** 异常枚举类*/ public enum ExceptionEnum {PARAM_EXCEPTION(10001, 非法参数异常),PARAM_LACK(10002, 参数不全异常),LOGIN_EXCEPTION(10003, 登录异常),UNKNOW_EXCEPTION(99999, 未知异常);private int status;private String message;ExceptionEnum(int status, String message) {this.status status;this.message message;}public int getStatus() {return status;}public String getMessage() {return message;} }总结 通过异常枚举类 自定义异常类 SpringBoot的异常处理注解可以实现对项目量身定做一套异常处理机制根据项目中出现的异常来返回对应的异常信息非常方便。
http://www.zqtcl.cn/news/958959/

相关文章:

  • 厦门 外贸网站一般什么企业需要建站
  • 代理注册公司需要什么条件网络推广优化服务
  • 做淘宝客网站需要备案吗物流企业
  • 珠海正规网站制作系统东莞建站多少钱
  • 做网站框架图哪个在线网站好用中铁三局招聘官网
  • wordpress百度站内搜索wordpress 修改用户名
  • 网络企业网站建设方案做网站大概需要多少费用
  • 网站301是什么意思自动友链网
  • 淘宝客怎么建设自己网站wordpress links插件
  • 深圳设计网站公司网站芜湖网站建设工作室
  • 礼品类网站建设策划方案郑州手机网站制作
  • 江桥做网站wordpress代码高亮插件
  • 合肥网站制作哪家好建设网站培训班
  • 优化站诊断山东大型网站建设
  • 网页设计与制作个人网站网络开发工程师
  • 沈阳网站关键词优化哪家好外贸营销网站制作公司
  • 连云港做网站的临沂网站建设有哪些
  • 做毕设的网站万wordpress图片怎么居中
  • 首页网站模板网站外链分析怎么做
  • so域名的网站有哪些结合公众号小店做网站
  • 阜宁专业做网站做信息网站能挣钱吗
  • wordpress 怎么手动更新宝安网站 建设seo信科
  • 腾讯的网站建设用了多少钱找人合伙做网站平台
  • 企业网站功能模块介绍服务器免费体验
  • 小程序制作收款网站结构优化的优化包括
  • 北京市建设工程质监站网站poi player wordpress
  • php网站开发工程师招聘网自己做小程序要钱吗
  • 两学一做考试网站空间网
  • 齐诺网站建设东莞网站建设做网站集团网站群
  • 网站运营策略如何做软件网站开发培训