【问题标题】:Add object data when throwing an exception抛出异常时添加对象数据
【发布时间】:2015-03-03 08:46:05
【问题描述】:

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

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

我发现的一些选项:

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

有推荐的方法吗?

【问题讨论】:

    标签: c# asp.net-mvc exception


    【解决方案1】:

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

    【讨论】:

    • 它会持续整个应用程序吗?我的意思是如果我想在另一个应用程序中使用 e.Data[SOME_KEY] 。它会起作用吗?按照这个我无法让它工作。 stackoverflow.com/questions/47467683/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-24
    • 2015-07-19
    • 1970-01-01
    • 2019-08-12
    • 2020-11-20
    相关资源
    最近更新 更多