保留原本 C# 的 Exception message,並加上客製化 Exception Message | c#

假設現在程式拋出了一個 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#?

comments powered by Disqus