gpt4 book ai didi

testing - 什么时候应该使用 Debug.Assert()?

转载 作者:行者123 更新时间:2023-11-28 19:37:49 25 4
gpt4 key购买 nike

我已经成为一名专业软件工程师大约一年了,并获得了 CS 学位。我知道 C++ 和 C 中的断言有一段时间了,但直到最近才完全不知道它们存在于 C# 和 .NET 中。

我们的生产代码不包含任何断言,我的问题是......

我应该开始在我们的生产代码中使用断言吗?如果是这样,什么时候使用它最合适?这样做会更有意义吗

    Debug.Assert(val != null, "message");

    if ( val == null )
throw new exception("message");

最佳答案

Debugging Microsoft .NET 2.0 Applications John Robbins 有一大部分内容是关于断言的。他的主要观点是:

  1. 自由断言。你永远不会有太多的断言。
  2. 断言不会取代异常。异常涵盖了您的代码要求的内容;断言涵盖它假设的事物。
  3. 写得很好的断言不仅可以告诉您发生了什么和在哪里(如异常),还可以告诉您原因。
  4. 异常消息通常是含糊不清的,需要您通过代码逆向工作以重新创建导致错误的上下文。断言可以在错误发生时保留程序的状态。
  5. 断言兼作文档,告诉其他开发人员您的代码所依赖的隐含假设。
  6. 当断言失败时出现的对话框允许您将调试器附加到进程,这样您就可以在堆栈中四处寻找,就好像您在那里放置了一个断点一样。

PS:如果您喜欢 Code Complete,我建议您继续阅读本书。我买它是为了学习如何使用 WinDBG 和转储文件,但前半部分包含一些提示,可帮助您首先避免错误。

关于testing - 什么时候应该使用 Debug.Assert()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/129120/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com