抛出异常时添加对象数据

时间:2015-03-03 08:46:05

标签: c# asp.net-mvc exception

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

抛出异常时,如何包含对象数据的最佳方法。当发生异常时,我希望异常显示特定的对象数据。

我发现了一些选项:

  • 我看到有一个public virtual IDictionary Data属性。我可以手动将数据添加到Data属性。
  • 我还可以将对象数据导出到xml文件,并将其包含在异常中。
  • 我也可以使用反射来获取所有对象字段。

有推荐的方法吗?

1 个答案:

答案 0 :(得分:9)

我肯定会选择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];