首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Debug.Fail和Debug.Assert

Debug.Fail和Debug.Assert
EN

Stack Overflow用户
提问于 2013-05-25 13:21:25
回答 2查看 2.6K关注 0票数 10

我有一个关于Debug.Fail方法的问题,这让我很困惑。它来自MeassureUp测试,如下所示:

要提高代码的可靠性,您需要验证一个重要的值,如果没有正确设置该值,则停止执行。但是,只希望在调试期间停止执行。您不希望拥有应用程序发布版本的用户遇到问题。

你应该用哪种方法?

  • Debug.Assert (我的答案)
  • Debug.Flush
  • Debug.Fail (根据MeassureUp测试正确答案)
  • Debug.Indent

我之所以回答Debug.Assert,是因为它有一个布尔条件作为参数,这意味着它可以验证一个值。Debug.Fail仅将字符串作为输出任何消息的参数。但这是官方的推理:

  • Debug.Fail会导致调试器中断代码行,并输出一条失败消息。
  • Debug.Assert计算一个条件并显示一条消息,但它不会中断处理。
  • Debug.Flush刷新调试输出缓冲区。
  • Debug.Indent控制输出格式。

他们所说的Debug.Assert“不中断处理”是什么意思?Debug.Assert和Debug.Fail都提供了类似的弹出窗口,其中包含中止按钮、重试按钮和忽略按钮。此外,Debug.Assert计算一个表达式。

官方的答案是错误的,包括他们的推理,还是我误解了什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-05-25 14:02:07

只是没什么区别。当条件为false时,Debug.Assert()调用会失败()。因此,在Assert()和调用Fail()的if语句之间也没有区别。

我建议你找个更好的网站。

票数 19
EN

Stack Overflow用户

发布于 2020-04-10 10:05:27

我通常在Debug.Fail()语句中使用default: (除了抛出异常或任何其他错误处理之外),在这些语句中default:永远不会发生。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16749970

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档