kar*_*l.r 25 .net c# debugging qa
catch(Exception ex)
{
}
Run Code Online (Sandbox Code Playgroud)
什么是最好的方法?
将它们全部撕掉并让它崩溃?添加日志代码?留言箱?这是在C#中.
Jon*_*eet 23
这在一定程度上取决于你的积极程度.这个应用程序是内部还是外部?您的更改是否会很快部署在实时系统上?您是否有特定的错误需要修复,或者它只是被视为灾难?
为了尽可能快地减少错误数量,但是最大的损坏风险,只需删除所有捕获块并让异常冒泡.对于更精细的方法,只需添加日志记录即可.
如果可能的话,您还应该与编写应用程序的人交谈.试着找出为什么他们有这么多异常吞咽障碍.他们真的了解异常吗?这里需要一定的机智,我怀疑:)
下一站:单元测试......
Ale*_*lli 12
第一个中间目标是很好地了解哪些例外被忽略以及在哪里; 为此,您可以简单地将日志记录代码添加到每个可怕的catch
- 所有块中,准确显示它是什么块,以及它捕获和隐藏的内容.对已经过检测的代码运行测试套件,您将获得修复作业的起始"蓝图".
如果你不具备测试套件的话,首先,使一个-单元测试可以等待(检查出羽毛伟大的书与遗留代码一起工作-遗留代码是最肯定你的问题在这里;-),但你需要一套可以自动运行的集成测试,并解决你应该修复的所有错误.
当你去修复bug之后的bug(很多不是由过于宽泛的catch块造成的,只是隐藏 /"推迟"他们;-),一定要以大多数"测试驱动"的方式工作:添加一个单元测试,检查错误,确认它中断,修复错误,重新运行单元测试以确认错误消失.您不断增长的单元测试套件(一切可能被模拟或伪造)将快速运行,您可以在工作时保持廉价重新运行,以便尽快捕获可能的回归,当它们仍然易于修复时.
您分配的任务实际上比"高声望"的SW开发任务(例如原型和新架构)更难(通常更重要),但经常被管理层误解和低估(因此未获奖励!) /客户端; 确保与利益相关者保持一个非常清晰和开放的沟通渠道,指出你正在做的所有大量成功的工作,它是多么具有挑战性,并且(为了他们的缘故,比你自己更多),他们将拥有多少通过在第一时间做到这一点来保存(也许下次他们会...我知道,我天生就是一个狂热的乐观主义者;-).也许他们甚至会为您分配任务的合作伙伴,然后您可以进行代码审查和配对编程,从而极大地提高工作效率.
而且,最后但并非最不重要的,祝你好运! - 不幸的是,你需要它......幸运的是,正如杰斐逊所说,"我工作越努力,我似乎就越幸运了";-)
更改catch块如下:
catch (Exception ex)
{
Logger.Log(String.Format(
System.Globalization.CultureInfo.InvariantCulture,
"An exception is being eaten and not handled. "+
"This may be hiding critical errors.\n"+
"Exception: {0}",
ex));
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2353 次 |
最近记录: |