練習 1:記錄例外資訊
在無例外處理的應用程式中加入例外處理區塊,實作本地與全域例外處理,記錄至 Windows 事件日誌。
開啟 Puzzler.sln,預設路徑 C:\Program Files\Microsoft Enterprise Library January 2006\labs\cs\Exception Handling\exercises\ex01,編譯。
abc123 點擊 Add Word,出現未處理例外,偵錯中斷PuzzlerUI 加入參考:Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.dll
Puzzler.cs,加入命名空間:using Microsoft.Practices.EnterpriseLibrary.ExceptionHandling;btnAddWord_Click 方法:private void btnAddWord_Click(object sender, System.EventArgs e)
{
try
{
PuzzlerService.Dictionary.AddWord(txtWordToCheck.Text);
errorProvider1.SetError(txtWordToCheck, "");
}
catch (Exception ex)
{
bool rethrow = ExceptionPolicy.HandleException(ex, "UI Policy");
if (rethrow)
throw;
MessageBox.Show(string.Format("Failed to add word {0}, please contact support.", txtWordToCheck.Text));
}
}
注意:必須使用 throw 而非 throw ex。throw ex 會重新封裝例外堆疊,失去原始資訊。