簡體   English   中英

Debug.Fail 和 Debug.Assert

[英]Debug.Fail and Debug.Assert

我有一個關於 Debug.Fail 方法的問題,這讓我很困惑。 它來自 MeassureUp 測試,如下所示:

為了提高代碼的可靠性,您需要驗證一個重要值並在該值設置不正確時停止執行。 但是,您只想在調試期間停止執行。 您不希望使用應用程序發布版本的用戶遇到問題。

您應該使用哪種方法?

  • Debug.Assert(我的回答)
  • 調試.刷新
  • Debug.Fail(根據 MeassureUp 測試正確答案)
  • 調試.縮進

我回答 Debug.Assert 因為它有一個布爾條件作為參數,這意味着它可以驗證一個值。 Debug.Fail 僅將字符串作為應輸出任何消息的參數。 但這是官方推理:

  • Debug.Fail 導致調試器在代碼行中斷並輸出失敗消息。
  • Debug.Assert 評估條件並顯示消息,但不會中斷處理。
  • Debug.Flush 刷新調試輸出緩沖區。
  • Debug.Indent 控制輸出格式。

Debug.Assert“不中斷處理”是什么意思? Debug.Assert 和 Debug.Fail 都提供了類似的彈出窗口,其中包含 Abort、Retry 和 Ignore 按鈕。 此外,Debug.Assert 計算表達式。

官方答案是錯誤的,包括他們的推理還是我誤解了什么?

只是沒有區別。 當條件為假時,Debug.Assert() 調用 Fail()。 因此 Assert() 和調用 Fail() 的 if 語句之間沒有區別。

我建議你找一個更好的網站。

我通常在switch/default:語句中使用Debug.Fail() ,其中default:永遠不會發生(除了拋出異常或其他任何錯誤處理)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM