C# try/catch 未按预期工作
C# try/catch not working as expected
我正在开发一个控制台应用程序,用于每天从父 ERP 系统导入我们的 CMS。
我在使用 try/catch 块时遇到了一个奇怪的问题。错误发生在我的尝试中,但没有抓住。起初,它确实进入了陷阱,我能够找出问题所在,但现在它只是在尝试时出错并停留在那里。点击继续不起作用,只是一次又一次地显示错误。该错误与 EF 和其中一个没有必填字段的模型有关...
public void Save()
{
try
{
_context.SaveChanges(); <--bombs here and never lets me step thru
}
catch (DbEntityValidationException e)
{
foreach (var eve in e.EntityValidationErrors)
{
Console.WriteLine("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:",
eve.Entry.Entity.GetType().Name, eve.Entry.State);
foreach (var ve in eve.ValidationErrors)
{
Console.WriteLine("- Property: \"{0}\", Error: \"{1}\"",
ve.PropertyName, ve.ErrorMessage);
}
}
throw;
}
}
它可能抛出了更多或不同的异常。
尝试使用
catch (Exception e)
看看它现在是否进入捕获并记录您的异常以确切知道您得到了什么
我认为这可能是 visual studio 调试设置和存在另一种异常类型(未在 DbEntityValidationException 下的继承层次结构中找到)这一事实的结合。
请尝试使用更通用的异常来处理,甚至使用:
catch (Exception ex)
注意:如果您的调试器只是停在发生错误的地方,您可能会发现此 link 有用:https://msdn.microsoft.com/en-us/library/d14azbfh.aspx
我正在开发一个控制台应用程序,用于每天从父 ERP 系统导入我们的 CMS。 我在使用 try/catch 块时遇到了一个奇怪的问题。错误发生在我的尝试中,但没有抓住。起初,它确实进入了陷阱,我能够找出问题所在,但现在它只是在尝试时出错并停留在那里。点击继续不起作用,只是一次又一次地显示错误。该错误与 EF 和其中一个没有必填字段的模型有关...
public void Save()
{
try
{
_context.SaveChanges(); <--bombs here and never lets me step thru
}
catch (DbEntityValidationException e)
{
foreach (var eve in e.EntityValidationErrors)
{
Console.WriteLine("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:",
eve.Entry.Entity.GetType().Name, eve.Entry.State);
foreach (var ve in eve.ValidationErrors)
{
Console.WriteLine("- Property: \"{0}\", Error: \"{1}\"",
ve.PropertyName, ve.ErrorMessage);
}
}
throw;
}
}
它可能抛出了更多或不同的异常。 尝试使用
catch (Exception e)
看看它现在是否进入捕获并记录您的异常以确切知道您得到了什么
我认为这可能是 visual studio 调试设置和存在另一种异常类型(未在 DbEntityValidationException 下的继承层次结构中找到)这一事实的结合。
请尝试使用更通用的异常来处理,甚至使用:
catch (Exception ex)
注意:如果您的调试器只是停在发生错误的地方,您可能会发现此 link 有用:https://msdn.microsoft.com/en-us/library/d14azbfh.aspx