Dot-Net

Debug.Fail 和 Debug.Assert

  • April 10, 2020

我有一個關於 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 語句之間沒有區別。

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

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

引用自:https://stackoverflow.com/questions/16749970