编写高质量代码改善C#程序的157个建议——建议63:避免“吃掉”异常
2024-08-26 18:16:53
建议63:避免“吃掉”异常
嵌套异常是很危险的行为,一不小心就就会将异常堆栈信息,也就是真正的Bug出处隐藏起来。这还不是最严重的,最严重的就是“吃掉”异常,即捕获,然后不向上层throw。
避免“吃掉”异常,并不是说不应该“吃掉”异常,而是这里有个重要原则:该异常可被预见,并且通常情况它不能算是一个Bug。
想象你正在对上万份文件进行解密,这些文件来自不同的客户端,很有肯能存在文件被破坏的情况,你的目标是将解密出来的数据插入数据库。这个时候,你不得不忽略掉那些解密失败的文件,让整个过程进行下去。当然,记录日志时必要的,因为后期你可能对解密失败的文件做统一处理。
另外一种情况,可能连记录日志都不需要。在对上千个受控端进行控制的分布式系统中,控制端需要发布心跳数据来判断受控端的在线情况。通常的做法是维护一个型号量,如果在一个可接受的阻滞时间内(如500ms)心跳数据发送失败,那么控制端线程将不会收到信号,即可以判断受控端的短线状态。这种情况下对每次SocketException进行记录,通常是没有意义的。
如果你不知道如何处理一个异常,那么千万不要“吃掉”异常,如果你一不小心“吃掉”了一个本该往上传递的异常,那么就可能诞生一个Bug,而且,解决它会很费周折。
转自:《编写高质量代码改善C#程序的157个建议》陆敏技
最新文章
- SQL中随机数函数rand()简介
- fzu2188 状压dp
- Maven&;&;Ant使用
- IOS开发之—— ShareSDK的使用
- BZOJ 3224: Tyvj 1728 普通平衡树 treap
- Ubuntu上安装Maven Eclipse以及配置
- laravel--has方法--查看关联关系
- ios的UIImage的两种不同的图片加载方式 tom猫
- 发送邮件java实现
- z-index用法总结
- [HDU1000] A + B Problem
- Redis 学习开发笔记
- [LeetCode] 26. Remove Duplicates from Sorted Array ☆(从有序数组中删除重复项)
- CSS语法基础
- 添加dubbo.xsd的方法
- 转载CSDN博客步骤
- php开启pdo扩展
- DevExpress ASP.NET v18.2新功能详解(四)
- IDE和SDK
- C++ pair(对组)用法
热门文章
- VMware Workstation Pro 12 创建虚拟机(安装Ubuntu)
- Flask之模板
- Error: listen EACCES 0.0.0.0:8080 错误解决记录
- mongodb主从复制 副本集(六)
- npm 全局环境变量配置
- 关于struts2.x中(警告: Could not find property [struts.valueStack])的解决方法
- Etcd的基本使用
- c3p0、dbcp和proxool比较
- Spark角色介绍及spark-shell的基本使用
- http协议简析(一)