我正在编写一个 MVC 5 互联网应用程序,我有一个关于抛出异常的问题。
抛出异常时包含对象数据的最佳方式是什么。我希望异常在发生异常时向我发送电子邮件时显示特定对象数据。
我找到的一些选项:
- 我看到有一个
public virtual IDictionary Data
属性。我可以手动将数据添加到Data
属性。 - 我还可以将对象数据导出到 xml 文件并将其包含在异常中。
- 我也可以使用反射来获取所有对象字段。
有推荐的方法吗?
最佳答案
我肯定会选择 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];
关于c# - 抛出异常时添加对象数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28827419/