[程序员] 最近的感悟,错误处理占大头?

根据昨天分享的一个问题,想到的。

在代码里,异常处理的代码也算是占大头,扑面而来的就是发生错误时怎么处理的大片代码;而且出现问题的概率是绝对的占大头。所以,异常代码出现bug的概率也在不知不觉中增加!

昨天遇到的这个例子:[程序员] 网络丢包的另一个例子:send失败是不是要close socket?。就是一个很好的说明,这里就是一个非常极端的例子,收发两端的buff都满了,这种情况出现的概率非常低;最终触发错误处理代码逻辑中的不合理,导致上层业务数据丢。但是这种不合理,又没有什么好的正向解决的方法(或者是一直不close,慢慢等buff清空,但是又要考虑是否有安全问题),导致最终的解决方法是不确定的,需要根据具体的需求,具体实现!

或者是将buff的size增大,减少出现buff慢的概率,然后容忍这种低概率事件的存在。或者是上层实现更加可靠的传输。或者是等待的时间拉长,也是容忍这种高概率事件的发生。

所以新产品虽然在实验室的环境中,跑着没有问题;但是并不代表安装到客户现场就一定没问题,因为异常出现的本质就是意想不到!谁能知道客户现场的网络能有这么差!导致产品内部各种异常处理出现问题/不能恢复!谁知道客户买的硬件会有缺陷,磁盘读取非常的慢,导致程序不能按时处理完成某项业务,导致产品问题!谁又能想到客户网络对接的网元实现与实验室的行为不一致,导致不兼容!谁又能知道客户技术员是如此的较真,只要不顺手,什么都可以称之为问题!等等不一而足。不知道大家有没有遇到过此类的事件?

这些都是超出研发想象的一些异常问题。所以即使在研发内部已经预想到了很多的异常可能,加了很多的异常代码,但是保不住还有没有想到的异常在客户现场等着你!即使想到了某种异常,而加了异常处理代码,到了现场,或许会因为异常处理代码的加入,而引入其他的问题。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/14443.shtml

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

相关文章

linux中使用yum下载对应软件包的离线安装包

方案一(推荐):repotrack #安装yum-utils yum -y install yum-utils #下载 ansible 全量依赖包 -p 指定下载目录 -a 指定版本 repotrack -a x86_64 -p /tmp ansible 方法二:yumdownloader yumdownloader 命令在软件包 yum-utils…

LeetCode刷题之HOT100之汉明距离

大家晚上好啊,今天几乎啥也没干,上个课就耽误了一下午,晚上来了积极性也不高,先完成今天的题目吧,请看题: 1、题目描述 2、逻辑分析 没有遇到过这种题目,想不出来有什么解法,看题解…

【尚品汇】开发过程记录

Mybatis-Plus返回自增的主键Id OverrideTransactional(rollbackFor Exception.class)public void saveBaseAttrInfo(BaseAttrInfo baseAttrInfo) {//1,平台属性信息 判断是修改还是添加if(baseAttrInfo.getId() ! null){baseAttrInfoMapper.updateById(baseAttrInf…

跟TED演讲学英文:Do schools kill creativity by Sir Ken Robinson

Do schools kill creativity? Link: https://www.ted.com/talks/sir_ken_robinson_do_schools_kill_creativity Speaker: Sir Ken Robinson Date: February 2006 文章目录 Do schools kill creativity?IntroductionVocabularySummaryTranscriptAfterword Introduction Sir…

可转债日内自动T+0交易,行情推送+策略触发+交易接口

说明 目前这个项目已编译打包,下载即可测试,直接生成多平台可执行文件,详见运行方法。行情部分与策略弱相关,拆分解耦单独作为一个项目。行情项目请移步GitHub - freevolunteer/hangqing: A股行情订阅工具,支持股票/可转债level2/level2数据&…

【stm32/CubeMX、HAL库】嵌入式实验六:定时器(3)|外部脉冲计数

参考: 【【正点原子】手把手教你学STM32CubeIDE开发】 https://www.bilibili.com/video/BV1Wp42127Cx/?p13&share_sourcecopy_web&vd_source9332b8fc5ea8d349a54c3989f6189fd3 《嵌入式系统基础与实践》刘黎明等编著,第九章定时器&#xff0c…

ubuntu root密码遗忘的修改办法

在Ubuntu中,如果你需要进入恢复模式(Recovery Mode)来修改用户密码,可以按照以下步骤进行: 重启计算机: 重新启动你的Ubuntu系统,等待GRUB菜单出现。 进入恢复模式: 如果GRUB菜单没…

Generic Segmentation Offload(GSO)

Generic Segmentation Offload汉语意思是啥? Generic Segmentation Offload(GSO)的汉语意思是“通用分段卸载”。在网络通信中,GSO 是一种技术,用于在网络栈中将较大的传输单元分段为更小的单元,以提高网络…

docker安装常用软件

1、potainer docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock \-v /mnt/opt/data/docker/portainer:/data \--restartalways --name portainer portainer/portainer-ce:latest 2、cloudreve docker run -d \ --name cloudreve \ -p 5212:5212 \ -…

文心智能体应用示例:职场反PUA专家的诞生

🧑 博主简介:阿里巴巴嵌入式技术专家,深耕嵌入式人工智能领域,具备多年的嵌入式硬件产品研发管理经验。 📒 博客介绍:分享嵌入式开发领域的相关知识、经验、思考和感悟,欢迎关注。提供嵌入式方向…

C#编程-.NET Framework使用工具类简化对象之间的属性复制和操作

在C#编程中,对象之间的属性复制和操作是一个常见的需求。为此,.NET Framework提供了多种实用工具库,如AutoMapper、ValueInjecter和ExpressMapper。这些库通过简化代码,提高了开发效率。本文将介绍这些工具库,比较它们…

远程桌面连接不上远程服务器,如何有效的解决远程桌面连接不上远程服务器的问题

在解决远程桌面连接不上远程服务器的问题时,我们需要采取一种专业且系统的方法来排查和修复可能存在的故障。以下是一些建议和步骤,帮助用户更有效地解决此类问题。 首先,用户需要确认远程服务器的状态和网络连接是否正常。 这包括检查服务器…

Linux入门攻坚——23、DNS和BIND基础入门2

前一篇实践了正向解析服务器的配置使用,如何配置反向解析呢? 反向区域: 区域名称:网络地址反写.in-addr.arpa. 192.168.138. --> 138.168.192.in-addr.arpa. (1)定义区域: zone "ZONE_NAME" I…

必应bing国内广告如何开户,这篇文章告诉你!

搜索引擎广告推广已成为企业提升品牌知名度、吸引潜在客户的重要渠道,微软必应Bing,作为全球领先的搜索引擎之一,其广告平台为企业提供了一个高效、精准的推广渠道。如何在必应Bing国内广告平台上开户,让你的品牌大放异彩呢&#…

一流的人才,不如二流的执行力

别总天天问什么赛道好做 说句实话,有的人,你给他再好的赛道也没用,做不起来还是做不起来有的人随便做一个赛道都能成功

Github Action 使用Python3.13

使用Github Action进行自动构建时,遇到这样一个问题: 由于Python3.13并未正式发布,所以以下内容未能按预期工作 jobs:build:runs-on: ubuntu-lateststrategy:matrix:python-version: [3.8, 3.9, 3.10, 3.11, 3.12, 3.13]steps:- uses: acti…

java项目之人事系统源码(springboot+vue+mysql)

风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的人事系统。项目源码以及部署相关请联系风歌,文末附上联系信息 。 项目简介: 基于vue的人事系统的主要使用者…

IT行业现状及未来发展趋势

IT行业现状及未来发展趋势 引言IT行业现状1. 云计算2. 大数据3. 人工智能4. 物联网5. 5G通信6. 区块链 IT行业未来发展趋势1. 边缘计算2. 人工智能与机器学习3. 量子计算4. 人工智能伦理与法规5. 可持续技术6. 数字孪生技术 结论 引言 随着技术的不断进步,IT行业已…

【Spring】spring入门程序

案例要求:创建一个 Studentservice 类,其中需要使用 studentDao 接口的保存方法,来存储一个Student 类的对象,StudentDao 接口有两个不同的实现类,通过 Spring 的方式,为 Student类创建对象并为属性赋值&am…

若依微服务整合knife4j

在Spring Cloud的微服务架构下&#xff0c;每个微服务并不需要引入前端的ui资源&#xff0c;因此在每个微服务的Spring Boot项目下&#xff0c;引入ruoyi-common-swagger提供的starter即可。 1、在ruoyi-gateway网关模块下&#xff0c;把knife4j依赖资源引入 <!-- knife4j…