在软件开发的复杂世界中,错误是不可避免的。无论是因为外部系统的变化、用户输入的错误,还是内部逻辑的缺陷,错误都会出现。为了有效管理这些错误,并向用户和开发者提供清晰、有用的反馈,设计一套合理的错误码和错误提示系统变得至关重要。本文将探讨设计错误码和错误提示的最佳实践,并介绍一些可供参考的开源规范和模板。
1. TCP/IP协议栈层次结构 2. TCP三次握手需要知道的细节点 3. TCP四次挥手需要知道的细节点(CLOSE_WAIT、TIME_WAIT、MSL) 4. TCP与UDP的区别与适用场景 5. linux常见网络模型详解(select、poll与epoll) 6. epoll_event结构中的epoll_data_t的fd与ptr的使用场景 7. Windows常见的网络模型详解(select、WSAEventSelect、WSAAsyncSelect) 8. Windows上的完成端口模型(
业界错误码的规范很多,但是阅读发现这些规范各不相同,甚至很多点相悖。前段时间查了很多资料、咨询过阿里百度等几家公司的同学整理出一份材料和同事分享交流过一轮,下面是一些汇总,这里是希望各路大神们不吝赐教,一起整理出一份最佳实践。
作者:谢代斌 研究测试TCP断开和异常的各种情况,以便于分析网络应用(比如tconnd)断网的原因和场景,帮组分析和定位连接异常掉线的问题,并提供给TCP相关的开发测试人员作为参考。 各个游戏接入都
有用户反馈电脑启动时,屏幕突然出现错误码0xc0000428,无法进入系统。本文将针对这个问题,分析出现错误码0xc0000428的原因,并为大家提供解决方案。
C 语言是一门面向过程的编程语言,通过一个又一个函数,把计算、过程控制等逻辑,包装成一个个独立的处理单元。
Windows 协议文档中所描述的协议规范中,错误码使用 HRESULT、Win32 错误码和 NTSTATUS 来描述。本文科普一下 HRESULT。
系统时钟是由定时/计数器产生的输出脉冲触发中断而产生的,一般定义为整数或长整数。输出脉冲的周期叫做一个“时钟滴答”。系统时钟也称为时标或者Tick。一个Tick的时长可以静态配置。
前言:前面了解完前面的Linux进程基础概念后,我们算是解决了Linux进程中的一大麻烦,现在我们准备更深入的了解Linux进程——Linux进程控制!
这些年,接触了形形色色的项目,写了不少网络编程的代码,从windows到linux,跌进了不少坑,由于网络编程涉及很多细节和技巧,一直想写篇文章来总结下这方面的心得与经验,希望对来者有一点帮助,那就善莫大焉了。 本文涉及的平台包括windows和linux,下面开始啦。 一、非阻塞的的connect()函数如何编写 我们知道用connect()函数默认是阻塞的,直到三次握手建立之后,或者实在连不上超时返回,期间程序执行流一直阻塞在那里。那么如何利用connect()函数编写非阻塞的连接代码呢? 无论在win
这些年,接触了形形色色的项目,写了不少网络编程的代码,从windows到linux,跌进了不少坑,由于网络编程涉及很多细节和技巧,一直想写篇文章来总结下这方面的心得与经验,希望对来者有一点帮助,那就善莫大焉了。 本文涉及的平台包括windows和linux,下面开始啦。 一、非阻塞的connect()函数如何编写 我们知道用connect()函数默认是阻塞的,直到三次握手建立之后,或者实在连不上超时返回,期间程序执行流一直阻塞在那里。那么如何利用connect()函数编写非阻塞的连接代码呢? 无论在wind
业务软件设计开发过程中会依赖一些基础组件, 事件路由就是常见的基础组件。 本模块结合业务场景, 定制了一个基本的事件路由模块。
从系统的角度看,任务是竞争系统资源的最小运行单元。任务可以使用或等待CPU、使用内存空间等系统资源,并独立于其它任务运行。
去搜错误码(可以看看日志文件里有没有),不搜不知道,一搜真香,网上大概率会有对应问题的解决教程
Download WMI Code Creator v1.0 from Official Microsoft Download Center
这篇文章从nginx的499着手,分析整个过程中是怎么产生499行为的,以及各种往返网络包出现的原因。说说我通过这个499问题一步一步分析的整个过程,不一定正确,但很有意思。
为了统一检索和规范 API,B站内部建立了一个统一的 bapis 仓库,整合所有对内对外 API。
软件开发中遇到异常才是正常,很少有人能写出完美的程序跑在任何机器上都不会报错。但极为正常的软件异常,却经常出自不同的原因,导致不同的结果。怎么样科学地认识异常、处理异常,是很多研发同学需要解决的问题。本文作者根据自己多年的工作经验,撰写了《异常思辨录》系列专栏,希望能体系化地帮助到大家。本文为系列第一篇,本篇文章将主要聚焦异常处理的几种方式展开,欢迎阅读。
很多使用堡垒机来连接外网的企业,在使用过程中都可能会遇到各种各样的报错,而错误码110是报错中经常出现的代码,很多朋友不知道为什么会出现这样的错误码,那么服务器堡垒机错误码110的原因是什么?错误码110如何解决呢?
我们知道网页有他的状态码,比如最常见的404,500。都有他自己的含义,但是,在MySQL数据库里面也有他们的一个错误码,相信很多同学见过但是没有注意到吧。很多时候,进行数据库操作的时候,会提示错误,但是大部分同学都会选择直接重写语句而不是先考虑如何根据错误信息来修改,其实学会看错误码,能够快速的定位自己的错误,更容易就能解决问题哦
如果一个人在工作的时候,能够看到良质,而且感觉到它的存在,那么他就是一个懂得关心的人。如果一个人对自己所看到的和手中所做的都细致入微地关心,那么他一定有某些良质的特性。---《禅与摩托车维修艺术》。
Graceful Response是一个Spring Boot体系下的优雅响应处理器,提供一站式统一返回值封装、全局异常处理、自定义异常错误码等功能,使用Graceful Response进行web接口开发不仅可以节省大量的时间,还可以提高代码质量,使代码逻辑更清晰。
事件是一种实现任务间通信的机制,可用于实现任务间的同步,但事件通信只能是事件类型的通信,无数据传输。一个任务可以等待多个事件的发生:可以是任意一个事件发生时唤醒任务进行事件处理;也可以是几个事件都发生后才唤醒任务进行事件处理。事件集合用32位无符号整型变量来表示,每一位代表一个事件。
解绑 SSH 密钥对后,您需要重启实例(RebootInstance)使更改生效。
C++ 是一个很灵活的语言,这把双刃剑一方面使得 C++ 有很强大的表达能力,但也使得其编程风格相当混乱,就连错误处理到底是使用错误码还是异常都常常争论不休。例如在 C 中我们默认用错误码处理错误,而在 Python、Java 中, 则默认用异常来处理错误。而在 C++ 中,使用这两种形式的错误处理形式都有,而目前来看,在我所在的团队中,除非是外部库,否则基本都是使用错误码。在这篇文章中,我将聊一下 C++ 错误处理的方式优劣,以及我们团队是如何进行 C++ 错误处理的。
错误处理指用户代码发生错误时,系统调用错误处理模块的接口函数,完成上报错误信息,并调用用户自己的钩子函数,进行特定的处理。
云审计服务支持删除已创建的追踪器。删除追踪器对已有的操作记录没有影响,当您重新开通云审计服务后,依旧可以查看已有的操作记录。DELETE /v1.0/{project_id}/tracker无无无请参见错误码。
在调用环信IM SDK中的注册与登录接口前,需要先进行初始化,如下所示,其中appkey在控制台应用详情中获取:
MySQL是一种广泛使用的关系数据库管理系统,提供了强大的数据复制功能,以确保数据的可靠性和一致性。然而,在复制过程中可能会遇到某些错误,这些错误可能会中断复制进程,影响到系统的正常运行。为了应对这种情况,MySQL提供了一种机制,允许我们在从服务器上跳过特定的错误,从而保持复制的连续性。在本文中,我们将探讨这种机制,以及如何在实践中应用它。
咱们引入 go generate ,可以只用定义错误码和写注释,就可以达到,当我们调用错误码的时候,能够正确的输出我们想要的错误信息
当异常发生时,Linux内核给造成异常的进程发送一个信号,告知其发生了异常。比如,如果一个进程尝试除零操作,CPU会产生除法错误异常,相应的异常处理程序发送SIGFPE信号给当前进程,然后由其采取必要的步骤,恢复还是中止(如果该信号没有对应的处理程序,则中止)。
1. json格式测试: 通常我们的接口一般设计的都是传递json串,那么就需要去测试 如果传递非json的情况,这时候程序会不会正确的处理,返回相应的 error code 2. 默认值测试: 很多情况一些非必填的参数会有默认值,比如说一个查询的接口,参数count为返回查询的结果数量, 默认为10,那么就应该有一条case来测试,当然前置条件是数据库里面必须要存在这样的数据超过10条。 3. 异常类型测试: 比如上面的count参数,这个参数的类型一定是可以转换
最近在做一个和前端、第三方平台(可以简单理解为公司别的部门或者客户软件)直接交互的服务,涉及到用户注册、登录、数据处理等模块。架构图大概如下:
软件开发中遇到异常才是正常,很少有人能写出完美的程序跑在任何机器上都不会报错。但极为正常的软件异常,却经常出自不同的原因,导致不同的结果。怎么样科学地认识异常、处理异常,是很多研发同学需要解决的问题。本文作者根据自己多年的工作经验,撰写了《异常思辨录》系列专栏,希望能体系化地帮助到大家。本文为系列第二篇,本篇文章将主要聚焦面向对象的分析设计和框架设计,欢迎阅读。
这些字符分类函数都是类似的,返回值都是int,假如我们用islower,如果参数是小写字母,则返回非0的随机数,如果不是则返回0.
中断,英文名为Interrupt,计算机的世界里处处都有中断,任何工作都离不开中断,可以说整个计算机系统就是由中断来驱动的。那么什么是中断?简单来说就是CPU停下当前的工作任务,去处理其他事情,处理完后回来继续执行刚才的任务,这一过程便是中断。
软件开发中遇到异常才是正常,很少有人能写出完美的程序跑在任何机器上都不会报错。但极为正常的软件异常,却经常出自不同的原因,导致不同的结果。怎么样科学地认识异常、处理异常,是很多研发同学需要解决的问题。本文作者根据自己多年的工作经验,撰写了《异常思辨录》系列专栏,希望能体系化地帮助到大家。本文为系列第三篇,本篇文章将主要聚焦业务开发对异常处理的需求点和一些优秀的异常处理案例,欢迎阅读。
如果传递非json的情况,这时候程序会不会正确的处理,返回相应的 error code
阿里的《Java开发手册》被Java开发者所拜读,基本人手一册,就在前几天(2020.04.22)发布了泰山版 - 会当凌绝顶,一览众山小,而这次发布新增了很多干货内容,在此,给大家分享一下,是时候更新你的手册了。(文末附下载地址)
使用 WiX 的 Burn 引擎制作自定义托管引导程序的 exe 安装包时,双击生成的安装包没有反应。如果查看日志可以发现有 0x80131508 错误。本文介绍其调查和解决方法
在Web开发中,我们经常会遇到404 Not Found错误。这个错误提示告诉我们所请求的URL在服务器上不存在。如果你正在遇到这个问题,本文将为你提供一些解决方案。
软件定时器,是基于系统Tick时钟中断且由软件来模拟的定时器,当经过设定的Tick时钟计数值后会触发用户定义的回调函数。定时精度与系统Tick时钟的周期有关。
1.【强制】错误码的制定原则:快速溯源、沟通标准化。 说明:错误码想得过于完美和复杂,就像康熙字典的生僻字一样,用词似乎精准,但是字典不容易随身携带且简单易懂。 正例:错误码回答的问题是谁的错?错在哪? 1)错误码必须能够快速知晓错误来源,可快速判断是谁的问题。 2)错误码必须能够进行清晰地比对(代码中容易 equals)。 3)错误码有利于团队快速对错误原因达到一致认知。
本系列参考: 学习开发一个RISC-V上的操作系统 - 汪辰 - 2021春 整理而来,主要作为xv6操作系统学习的一个前置基础。
先前已经对异常如何设计,如何实践异常都写了几篇阐述了。再一次从Clean Code角度来谈谈异常的使用。
今天下午我遇到了一些棘手的问题,因为在mips64上编译程序,经常出现程序编译不出来,或者运行不正常,花了很长的时间定位,最后和同事一些解决了,下面分享出来我提炼出来的一些核心定位问题的步骤。
在使用 腾讯实时音视频(TRTC) 进行视频通话或直播时,可能会出现错误码提示“无法上行辅路流”,主要是在TRTC回调onError中抛出的RR_SERVER_CENTER_NO_PRIVILEDGE_PUSH_SUB_VIDEO -102015错误码 。这是因为单个房间内只能上行一路辅路流,如果已经存在一路辅路流在上行,则无法再进行上行,这也可能会影响后续的视频通话或直播效果。
领取专属 10元无门槛券
手把手带您无忧上云