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

成都网站logo设计查企业有哪些平台

成都网站logo设计,查企业有哪些平台,网站开发培训视频,设计公司logo免费设计生成器(一)概述异常处理是一个系统最重要的环节#xff0c;当一个项目变得很大的时候#xff0c;异常处理和日志系统能让你快速定位到问题。对于用户或者接口调用者而言#xff0c;优雅的异常处理可以让调用者快速知道问题所在。本文将介绍如何优雅地处理异常。(二)使用通用的返回…(一)概述异常处理是一个系统最重要的环节当一个项目变得很大的时候异常处理和日志系统能让你快速定位到问题。对于用户或者接口调用者而言优雅的异常处理可以让调用者快速知道问题所在。本文将介绍如何优雅地处理异常。(二)使用通用的返回体我们希望所有的错误都以Json的方式返回给客户因此拿出上次写的通用返回体新建一个类CommonResult记录返回体。DataAllArgsConstructorNoArgsConstructorpublic class CommonResult { private int code; private String message; private Object data;}复制代码新建一个枚举类ResponseCode集成code和message。public enum ResponseCode { // 系统模块 SUCCESS(0, 操作成功), ERROR(1, 操作失败), SERVER_ERROR(500, 服务器异常), // 通用模块 1xxxx ILLEGAL_ARGUMENT(10000, 参数不合法), REPETITIVE_OPERATION(10001, 请勿重复操作), ACCESS_LIMIT(10002, 请求太频繁, 请稍后再试), MAIL_SEND_SUCCESS(10003, 邮件发送成功), // 用户模块 2xxxx NEED_LOGIN(20001, 登录失效), USERNAME_OR_PASSWORD_EMPTY(20002, 用户名或密码不能为空), USERNAME_OR_PASSWORD_WRONG(20003, 用户名或密码错误), USER_NOT_EXISTS(20004, 用户不存在), WRONG_PASSWORD(20005, 密码错误), ; ResponseCode(Integer code, String msg) { this.code code; this.msg msg; } private Integer code; private String msg; public Integer getCode() { return code; } public void setCode(Integer code) { this.code code; } public String getMsg() { return msg; } public void setMsg(String msg) { this.msg msg; }}复制代码(三)自定义运行时异常自定义一个运行时异常类构造方法传入异常参数即可。public class MyException extends RuntimeException{ private String msg; public MyException(String msg) { super(msg); }}复制代码(四)编写一个统一的异常处理类异常处理类是整个异常处理核心SpringBoot中提供了ControllerAdvice注解来拦截异常使用RestControllerAdvice注解保证了返回Json格式。如果拦截到的异常属于MyException则按Json格式返回错误结果。RestControllerAdvicepublic class ExceptionController { ResponseStatus(HttpStatus.BAD_REQUEST) ExceptionHandler(value Exception.class) public CommonResult exceptionHandler(Exception e){ //如果抛出的异常属于自定义异常就以JSON格式返回 if (e instanceof MyException){ return new CommonResult(ResponseCode.ERROR.getCode(),ResponseCode.ERROR.getMsg(),自定义的错误为e.getMessage()); } //如果都不是就打印出异常的信息 return new CommonResult(ResponseCode.ERROR.getCode(),ResponseCode.ERROR.getMsg(),错误的信息为e.getMessage()); }}复制代码(五)测试为了看初效果这里手动抛出一个异常来测试新建IndexController手动抛出异常RestControllerpublic class IndexController { RequestMapping(value /index,method RequestMethod.GET) public String index(){ throw new MyException(测试); }}复制代码查看调用结果(六)对实体类的校验有这样一个场景登陆注册时用户名和密码有长度限制手机号有格式限制如果不满足要求就无法注册。这个功能前端可以限制但是对于后端接口而言也需要进行限制万一前端没有限制住呢。导入两个校验依赖包javax.validation validation-api 2.0.1.Finalorg.hibernate hibernate-validator 6.1.0.Final复制代码编写实体类在每个属性上加上校验包的验证参数。Datapublic class Register { Length(max 20,min 4,message 用户名长度需要在4到20个字符之间) NotBlank(message 用户名不能为空) private String username; NotBlank(message 手机号不能为空) Pattern(regexp ^1[3|4|5|8][0-9]d{8}$,message 电话号码格式不正确) private String phone; Length(max 20,min 4,message 密码长度需要在4到20个字符之间) NotBlank(message 密码不能为空) private String password;}复制代码我们在需要使用的方法中增加Valid注解进行校验比如这个post请求中我要校验。PostMapping(/register)public CommonResult register(Valid RequestBody Register register){ //一连串注册的业务 userService.registerUser(register); return new CommonResult(ResponseCode.SUCCESS.getCode(),ResponseCode.SUCCESS.getMsg(),);}复制代码Valid在校验失败的情况下会报出参数不合法的异常还是在统一的异常处理类中捕获异常如果是MethodArgumentNotValidException就取出对应的message数据。RestControllerAdvicepublic class ExceptionController { ResponseStatus(HttpStatus.BAD_REQUEST) ExceptionHandler(value Exception.class) public CommonResult exceptionHandler(Exception e){ //如果属于参数校验异常就抛出校验的错误 if (e instanceof MethodArgumentNotValidException){ MethodArgumentNotValidException methodArgumentNotValidException (MethodArgumentNotValidException) e; return new CommonResult(ResponseCode.ERROR.getCode(),ResponseCode.ERROR.getMsg(), 校验错误methodArgumentNotValidException.getBindingResult().getFieldError().getDefaultMessage()); }//如果是自定义的异常就给出具体的异常原因 else if (e instanceof MyException){ return new CommonResult(ResponseCode.ERROR.getCode(),ResponseCode.ERROR.getMsg(),自定义的错误为e.getMessage()); } //如果都不是就打印出异常的信息 return new CommonResult(ResponseCode.ERROR.getCode(),ResponseCode.ERROR.getMsg(),错误的信息为e.getMessage()); }}复制代码(七)测试校验接下来就可以测试校验的功能了通过postman访问如果输入参数不满足之前的设置就会给出具体的错误信息。而不是抛出让人无法接收的报错(八)总结许多人写代码时最不考虑的就是异常处理简单地实现需求就好了所以才会导致许多不可预估的bug出现。好了本期文章就到这里了我们下期再见。看完三件事❤️如果你觉得这篇内容对你还蛮有帮助我想邀请你帮我三个小忙点赞转发有你们的 『点赞和评论』才是我创造的动力。关注头条号 『 JAVA后端架构 』不定期分享原创知识。同时可以期待后续文章ing关注作者后台私信【888】有惊喜相送
http://www.zqtcl.cn/news/701258/

相关文章:

  • 网站点击率h5开发app
  • 中英文 微信网站 怎么做网站的建站公司
  • 苏州网站建设新手去哪找做塑料的网站
  • 莱芜网站建设电话瓦房店网站建设
  • 视频网站app怎么做的天津seo标准
  • 建立音乐网站wordpress 安装文件名
  • 龙华营销型网站制作企业网站模板源代码下载
  • 山东城乡建设厅网站哪有做网站公司
  • 建设网站是否等于开展网络营销用wordPress搭建图片库
  • 泗阳做网站的外贸公司网站搭建
  • 做汽车保养的网站上商业招商网站
  • 如何进网站帝国cms调用网站名称
  • 瑞金网站建设推广合肥瑶海区地图
  • 静态网站建设国内免费域名
  • 网站建设设计公司电子商务网站开发与管理
  • 手机网站制作设计做国际网站有什么需要注意的
  • 机构网站源码如何分析一个网站
  • 免费营销软件网站网站建设与规划实训总结
  • 网站深度功能建筑人才网市场
  • 学校网站建设的意义和应用服务平台管理系统
  • 网站内容规划要包括什么内容wordpress5.2 php版本
  • 山西建设部网站超值的镇江网站建设
  • 做淘宝要网站网站推广外链怎么做
  • 深圳做网站推广哪家好自建网站优缺点
  • 网站建设询价函什么网站可以做会计题目
  • 电脑网站视频怎么下载珠海免费网站制作
  • wordpress menu icon咸阳seo
  • php制作网站网站开发与客户沟通
  • 百度网站建设平台微盟微商城官网
  • 三明网站seo上海中学分数线