抛出异常时添加对象数据

Add object data when throwing an exception

我正在编写一个 MVC 5 互联网应用程序,我有一个关于抛出异常的问题。

抛出异常时包含对象数据的最佳方式是什么。我希望在发生异常时向我发送电子邮件时异常显示特定对象数据。

我找到的一些选项:

有推荐的方法吗?

我肯定会选择 Data 字典,因为它最接近实际的异常。此外,它不需要访问文件系统等即可工作。

我们自己经常使用 Data 字典,有一个键列表对您很有帮助,这样您就可以轻松地再次引用数据。

例如:

public const string SOME_KEY = "some_key";

Exception e = new Exception("some error");
e.Data.Add(SOME_KEY, someValue);

throw e;

稍后再使用它:

object some_key = e.Data[SOME_KEY];