閱讀Stephens' C#教材第二十二章筆記
Chapter 22 Preventing Bugs.
本章將介紹如何進行程式測試,主動偵測出錯誤並加以修正。
在C#中有assert方法協助進行程式的測試,assert 會評估條件。如果結果是 false,則它會將顯示訊息方塊,顯示帶有檔案編號和行號的呼叫堆疊。
訊息方塊包含三個按鈕:[中止]、[重試]、[忽略]。按一下 [中止] 按鈕會終止應用程式。如果您的應用程式在偵錯工具中執行,按一下 [重試] 就
會在偵錯工具中將您帶到程式碼,否則會提供開啟偵錯工具的選項。按一下 [忽略] 會繼續進行程式碼中下一個指令。詳細資料請參考微軟網頁
Factorials程式將原本以下的程式
private long Factorial(long n)
{
// Validate the input.
if ((n < 0) || (n > 20))
throw new ArgumentOutOfRangeException(
"n", "Factorial parameter must be between 0 and 20.");
if (n <= 1) return 1;
return n * Factorial(n - 1);
}
修改成以下
private long Factorial(long n)
{
// Validate the input.
Debug.Assert((n >= 0) && (n <= 20),
"Factorial parameter must be between 0 and 20.");
// Display a debugging message.
Debug.WriteLine("Factorial(" + n.ToString() + ")");
if (n <= 1) return 1;
return n * Factorial(n - 1);
}
執行程式時如果輸入21的值會產生的結果如下圖:
Temperatures程式中也加入溫度上下限的Debug.Assert程式,一旦發生錯誤,程式設計人員可以透過顯示訊息的內容及重試鈕快速進到程式去偵錯。
TRY IT中透過下圖程式示範如果在程式中加入Debug.Assert陳述式,讓程式錯誤容易被發現。