C#try / catch没有按预期工作

时间:2015-07-13 20:22:20

标签: c# entity-framework try-catch windows-console

我正在开发一个控制台应用程序,用于从父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;
        }
    }

2 个答案:

答案 0 :(得分:3)

可能会抛出更多或不同的异常。 尝试使用

catch (Exception e)

看看它现在是否已进入捕获并记录您的异常,以确切了解您的内容

答案 1 :(得分:0)

我认为它可能是visual studio调试设置和另一种类型的异常(在DbEntityValidationException下的继承层次结构中找不到)的结合。

请尝试使用更常见的例外处理,甚至使用:

catch (Exception ex)

注意:如果您的调试器只是在发生错误的地方停止,您可能会发现此链接很有用:https://msdn.microsoft.com/en-us/library/d14azbfh.aspx