Dot-Net
Debug.Fail 和 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 語句之間沒有區別。
我建議你找一個更好的網站。
我
Debug.Fail()通常在不應該發生的switch/default:語句中使用default:(除了拋出異常或任何其他錯誤處理)