做微电网的公司网站网站外部链接建设分析

diannao/2026/1/22 18:04:07/文章来源:
做微电网的公司网站,网站外部链接建设分析,天马网络网站,网页代码是什么语言(一)概述异常处理是一个系统最重要的环节#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.mzph.cn/diannao/89218.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

asp.net网站发布到虚拟主机网站备案中打不开

:::details 编写一个算法来判断一个数 n 是不是快乐数。 「快乐数」 定义为: 对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。 然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。 如果这个过程 结果为 1…

企业英语网站京东电子商务网站建设

41. lldb(gdb)常用的控制台调试命令?1). p 输出基本类型。是打印命令,需要指定类型。是print的简写 p (int)[[[self view] subviews] count] 2). po 打印对象,会调用对象description方法。是print-object的简写 po [self view] 3). expr 可以在调试时动态执行指定表达式,…

重庆网站建设定制网站首页页面设计模板

转载:电脑知识收藏夹 Blog Archive Windows中的命令行提示符里的Start命令执行路径包含空格时的问题 当使用Windows 中的命令行提示符执行这段指令时(测试Start命令执行带空格的路径的程序或文件问题),第一行Start会成功执行,跳出记事本程…

网站公司的利润电脑网页加速器

视频链接&#xff1a;【62】【Cherno C】【中字】C的线程_哔哩哔哩_bilibili 参考文章&#xff1a;TheChernoCppTutorial_the cherno-CSDN博客 Cherno的C教学视频笔记&#xff08;已完结&#xff09; - 知乎 (zhihu.com) C 的线程 #include<iostream> #include<th…

深圳有名的室内设计公司盐城网页优化公司

大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;雄雄的小课堂 查询运行项目的进程 ps -aux|grep farbeat 杀死进程 kill -9 1600336进入目录 cd /www/wwwroot/farbeat/查看文件 ls将日志输出在nohup文件中的方式启动项目(注意.jar文件的名字) nohup j…

问答网站建设深圳专业做网站开发费用

全世界只有3.14 % 的人关注了数据与算法之美2019年必将是充满机遇与挑战的一年&#xff0c;一年的时间世界可能发生很大的变化。我们应该如何期待新的一年&#xff1f;在这&#xff0c;数据汪带大家重新读1983年美国作家艾萨克阿西莫夫&#xff08;Isaac Asimov&#xff09;对2…

政务网站建设工作的通知网站开发如何建设公共页面

# ┌───────────── 分钟 (0 - 59) # │ ┌───────────── 小时 (0 - 23) # │ │ ┌───────────── 日期 (1 - 31) # │ │ │ ┌───────────── 月份 (1 - 12) # │ │ │ │ ┌───────────── 星期 (0 - 6) (0…

做网站的图片用什么格式专业群建设方案

VSCode自定义配置 Visual Studio Code (VSCode) 是一个强大的开源代码编辑器&#xff0c;支持丰富的自定义配置。下面是一些常见的自定义配置选项&#xff0c;你可以根据个人喜好和工作流程进行调整&#xff1a; 1. 主题和配色方案: 在 “settings.json” 中设置&#xff1a…

茶叶手机网站建设北京华诚传媒有限公司官方网站

今天&#xff0c;我有一篇简短的文章&#xff0c;内容涉及在Spring Data Cassandra中使用Prepared Statements。 Spring为您提供了一些实用程序&#xff0c;使您可以更轻松地使用“预备语句”&#xff0c;而不必依靠自己使用Datastax Java驱动程序手动注册查询。 Spring代码提供…

宁波搭建网站公司海淘直邮购物网站

钉钉在企业中的广泛应用&#xff0c;聊天审计软件也日益受到关注。这类软件主要针对企业微信、钉钉等即时通讯工具&#xff0c;对其中的聊天记录进行审计&#xff0c;以便企业能够更好地管理员工的在线行为&#xff0c;并保障信息安全。 一、聊天审计软件的作用 1、监管员工行…

网站logo设计创意小程序推广怎么赚钱

【1】题目&#xff1a; 给定一个无序数组&#xff0c;找到最长的单调自增子序列&#xff08;不一定连续&#xff0c;但是顺序不能乱&#xff09;的长度&#xff1b; 【2】看个荔枝&#xff1a;给定数组 [10, 9, 2, 5, 3, 7, 101, 18] 输出结果为 [2, 3, 7, 101]。。算法时间…

鹤岗网站建设sqlite3做网站数据库

本文实例为大家分享了python如何删除文件中重复字段的具体代码&#xff0c;供大家参考&#xff0c;具体内容如下原文件内容放在list中&#xff0c;新文件内容按行查找&#xff0c;如果没有出现在list中则写入第三个文件中。import csvfiletxt1 E:/gg/log/log1.txtfilecsv1 E:…

网站开发总结摄影设计说明怎么写

*头图来源&#xff1a;东方IC来源&#xff1a;虎嗅APP虎嗅注&#xff1a;在微信上下游诞生了无数的生态企业&#xff0c;他们关注着微信的一举一动&#xff0c;以便在其中掘金。6月15日&#xff0c;微盟集团CEO孙涛勇在华映资本WE来大会上&#xff0c;分享了对微信生态商业进化…

网站开发工程师岗位要求推广赚钱吗

“LOG”就是我们生产出来的产品的品牌.可以是单一的字组成&#xff1b;可以是图案组成&#xff1b;也可以由字与图案一起组成。一种是我们用模具生产出来的,通过模具上加工的字体生产出来的“LOG”,从而表现在产品上。而用模具直接生产出来的“LOG”,模具上有把做“LOG”字体做…

建站步骤图由wordpress强力驱动

前言 输入一个手机号18333333333&#xff0c;你是怎么知道这串数字是手机号呢&#xff0c;假如现在你用python写一段代码&#xff0c;类似&#xff1a; phone_number input(please input your phone number&#xff1a;) 你怎么判断这个phone_number是合法的呢&#xff1f;…

wap类网站企业免费网站注册

说在前面&#xff1a;有粉丝提问说自己并不确定学前端&#xff0c;因为自己还没有工作&#xff0c;想做程序员&#xff0c;想问问做哪个方向比较有前途&#xff1b; 有两三个小伙伴这么问的&#xff0c;感觉很有意义&#xff0c;拿出来单独说说比较好。 目录 程序员有哪些选择&…

做博客网站怎么赚钱吗网站群建设情况

目录 写在开头1.简单回顾2. 时间周期和区间2.1 处理时间周期2.2 时间区间的处理2.3 实际场景案例2.4 复杂周期的处理2.5 区间计算中的时区考虑3. 时间格式本地化3.1 解释多地区的本地化支持3.2 演示国际化灵活性3.3 处理不同语言和习惯4. 时间迭代4.1 Pendulum的时间迭代方法4.…

2020站群seo系统wordpress 文章推荐一篇

12月14日晚9点才到无锡&#xff0c;棉袄都湿透了&#xff0c;到公寓那已经无力&#xff0c;天黑什么都看不清&#xff0c;到一个摆摊的阿姨买了根火腿肠&#xff0c;问了下路。买了点日用品&#xff0c;打扫了宿舍&#xff0c;折腾的很晚。12月15日&#xff0c;6点多就醒了&…

全站flash网站珠海哪个建设网站建设好

Hello&#xff0c;很有缘在这篇文章上我们相遇了&#xff0c;那么我就用题目巩固我们多级指针的知识&#xff0c;当然这里的题目是比较有点难度的&#xff0c;我们需要有点基础呀&#xff0c;如果你能轻松理解题目那说明你对指针的了解已经很有基础了呢&#xff0c;那废话不多说…

石家庄建网站挣钱优帮云php 网站版面素材

类别类名说明Visual Basic 数据类型C# 数据类型C 托管扩展数据类型JScript 数据类型整数Byte8 位的无符号整数。BytebytecharByteDZX7¢&dot [url]www.cnntec.com[/url]…gT‚sSByte8 位的有符号整数。 不符合 CLS。DZX7¢&dot [url]www.cnntec.com[/url]…gT‚…