`
- 浏览:
123152 次
- 性别:
- 来自:
上海
-
<高效程序员的45个习惯>精简版读后感 -- 报告所有的异常
不报告所有异常有什么坏处
例如:你在一个方法里捕获了一个异常,但是在catch里没有做任何事情,也没有向外扩散这个异常。那么,当日后程序在生产环境中运行时发生错误,抛出这个异常时,方法返回了,运行结果错误,最终用户看不到任何错误提示。bug修复人员也无法很快定位错误,因为错误的表现形式是多样的,唯一能做的就是一步步调试找到错误的位置。如果碰巧这个bug的环境很难重现的话,对开发人员来说是一场灾难。
为什么要报告所有异常
1 大部分异常都是程序出现错误,很难恢复。出现的错误后应该第一时间展示出来,否则,这个问题在以后也会通过其它形式展示,这样排错的代价更高。
2 在程序运行发生问题时,开发人员,测试人员,最终用户等能清楚的明白: 程序出问题了,在哪里出了问题,出了什么问题。
3 注意这里说的“报告”并不一定就是非要把异常传播到最高层打印到控制台上,有时候可能只是记一条错误日志,或是发送一条消息,电子邮件。
为什么实践中大家(至少我是这样)常常没有遵守这一点
1 低级别选手对异常本身就含糊不清;
2 java的异常架构(受检和非受检)本身就有相当的争议,个人认为主要原因在于这种架构容易让人误用,包括JDK的开发者;
注: Robert Martin也认为受检的异常并不好,主要原因是在异常向上传播时,会让每一个方法都受影响(每个方法的定义里都必须抛出异常),结果就是代码耦合性强。条件允许的情况下,尽可能使用非受检异常。
3 从一些书中可以找到一些好的实践,但是系统性的,权威性的说明好像还没有看到。
实践做法
1 普通的应用程序(如桌面应用)直接把异常往外层扩展。
2 如果自己做框架,尽量把异常包装成unchecked exception,类似spring的做法,这样就不用写扩展代码而把异常扩展到最高层。
3 在无法扩展异常到外层时(例如web应用),捕获异常后,通过各种方式,例如日志,邮件来报告异常。
注: 实践中,发邮件可能是个比较好的方案,例如: 可以对一段时间内发生的错误汇总起来,一起发给系统管理人员。如果只记日志效果不一定好,一是错误可能淹没在日志里,二是系统管理人员事情太多,不一定有这个精力去持续关注日志。
注:上面若干想法来自于<高效程序员的45个习惯>精简版, effective java等书。如有雷同,不是巧合。另外,最近在看Robert Martin的<Clean Code>,看完后可能会有不同的观点,到时再更新。
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
本书名为《高效程序员的45个习惯 敏捷开发修炼之道》,由Venkat Subramaniam和Andy Hunt两位作者共同撰写。书中所提到的45个习惯,不仅涉及软件开发过程、编程和调试工作,还包括了开发者的个人态度、项目和团队管理...
高效程序员的45个习惯 英文完整版 V.Subramaniam, A.Hunt - Practices of an Agile Developer - Working in the Real World. 2006.pdf
高效程序员45个习惯,为你的个人拓展提供发展方向
这45个习惯覆盖了态度、学习、开发流程、用户、编程以及团队协作等多个方面,旨在帮助程序员成长为更高效、更优秀的专业人士。 1. **态度篇**: - **做实事**:解决问题,勇于承担责任,避免抱怨和指责。 - **...
程序员职业素养读后感
高效程序员的10个习惯,学习高效的编程方法。
<<C# 程序员参考手册>> 学习C#的好资料。
“项目启动了一段时间之后,你应该进入一种舒适的状态,团队和客户建立了一种健康的富有创造性的关系。 突发事件应极少发生。客户应该能感觉到,他们可以在... “高效程序员的45个习惯:敏捷开发修炼之道”。 iBooks.
简历模板-程序员-通用-精选简历模板-程序员-通用-精选简历模板-程序员-通用-精选简历模板-程序员-通用-精选简历模板-程序员-通用-精选简历模板-程序员-通用-精选简历模板-程序员-通用-精选简历模板-程序员-通用-精选...
276 "Java Progrmming(Windows 95)"<br/>JTL-SL-275 "Java Tutor:Java Programming Library"<br/> <br/>题数:<br/> 60<br/> <br/>考题类型:<br/> 多选/简答<br/> <br/>通过分数:<br/> 70%<br/> <br/>考试时间:...
标题和描述中提到的“高效程序员的10个习惯”,实际上是在强调软件开发领域中,尤其是敏捷开发过程中,程序员应当遵循的一系列最佳实践和心态。这些习惯不仅有助于提升个人的工作效率,还能增强团队协作,最终确保...
标题中的“程序员的45个良好习惯”是一个旨在提升编程技能和团队协作效率的指南,描述...总的来说,这45个习惯旨在全方位地塑造一个专业、高效、团队协作良好的程序员形象,帮助他们在编程生涯中不断进步,实现卓越。
10<br><br>0023 如何添加引用第3方控件 11<br><br>0024 如何生成DLL文件 11<br><br>0025 如何使用不安全代码 11<br><br>第2章 语言基础 13<br><br>2.1 注释 14<br><br>0026 如何对代码进行注释 14<br>...
软件工程课程设计---学生管理系统--程序员SUMER 软件工程课程设计---学生管理系统--程序员SUMER 软件工程课程设计---学生管理系统--程序员SUMER 软件工程课程设计---学生管理系统--程序员SUMER 软件工程课程设计---...
【程序员的工作总结-述职报告】 在程序员的工作中,总结与述职报告是个人成长与团队协作的重要环节。以下是对这份报告的详细解读: 1. **工程部PDA运维系统** - 这个系统包含了三个主要功能模块:工单管理、消息...
高效程序员应该养成的七个习惯
软件工程课程设计-----Release.rar --程序员SUMER 软件工程课程设计-----Release.rar --程序员SUMER 软件工程课程设计-----Release.rar --程序员SUMER 软件工程课程设计-----Release.rar --程序员SUMER 软件工程课程...
#--------------------------------------------------------------------------<br># 声明<br># compiler.mk:一个简单而又灵活的基础编译环境文件,它的易用性甚至可以让<br># 程序员不必了解甚至不用编写makefile...