MVC 4 - 例外助手

时间:2012-11-21 10:46:16

标签: asp.net-mvc-4

在mvc 4中(但我认为在所有mvc版本中)我需要拦截DbEntityValidationException。

在这个阶段,我需要在简单的日志中显示此对象中的错误。

在捕获中,我有这个代码:

foreach (var eve in EventityValidationErrors)
   {
        foreach(var ve in eve.ValidationErros)
       {
         Console.Writeline(ve.PropertyName,ve.ErrorMessage)
       }
    }

,这非常有用。

现在,我的工作是尝试在视图中显示此异常信息(仅在开发阶段)。

有人知道是否有快速的方法吗? (理想情况下使用外部nuget组件)

1 个答案:

答案 0 :(得分:0)

Elmah有一个nuget package,可以快速提供详细错误。

你需要稍微改变你的捕获量。这是抓住你的异常,创建一个包含你的数据的新异常,然后抛出这个异常并让Elmah处理它。

catch(DbEntityValidationException dbEx)
{
   var sb = new StringBuilder();
   foreach (var eve in dbEx.EntityValidationErrors)
   {
        foreach(var ve in eve.ValidationErrors)
       {
         sb.Append(ve.PropertyName);
         sb.Append(ve.ErrorMessage); //format to your needs
       }
    }
  var detailedException = new Exception(sb.ToString(), dbEx)
}

有很多关于如何设置Elmah以捕获所有未处理的mvc异常的文档。