假設現在程式拋出了一個 Exception,那麼我們看到的訊息應該會是 C# 預設寫好的錯誤訊息,但同時我們希望使用者需要知道這一個錯誤訊息,開發者應該可以將預設寫好的錯誤訊息變成使用者看得懂的東西。此時可以使用 Exception 的 Data 屬性。
Data 屬於 key/value pair,可以傳入自己想要的 key 和 value,可以使用以下 Exception.Data[key]
取到 Value。
範例
1
2
3
4
5
| catch (Exception ex)
{
ex.Data.Add("UserMessage", "An error occurred while trying to load the XSLT file.");
throw;
}
|
1
2
3
4
5
6
7
8
9
10
11
| catch (Exception ex)
{
if (ex.Data.Contains("UserMessage"))
{
MessageBox.Show(ex.Data["UserMessage"].ToString());
}
else
{
MessageBox.Show(ex.Message);
}
}
|
參考資料
How can I add a message to an exception without losing any information in C#?