抛出异常时添加对象数据

use*_*648 4 c# asp.net-mvc exception

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

抛出异常时如何包含对象数据的最佳方法.我想要在发生异常时向我发送电子邮件时显示特定对象数据的异常.

我找到的一些选项:

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

有推荐的方法吗?

Pat*_*man 9

我肯定会去Data字典,因为那是最接近实际的例外.此外,它不需要访问文件系统等工作.

我们Data自己使用字典很多,并且有一个键列表有助于您,因此您可以轻松地再次引用数据.

例如:

public const string SOME_KEY = "some_key";

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

throw e;
Run Code Online (Sandbox Code Playgroud)

稍后再使用:

object some_key = e.Data[SOME_KEY];
Run Code Online (Sandbox Code Playgroud)