c# try/catch未按预期工作

本文关键字:工作 try catch | 更新日期: 2023-09-27 18:02:32

我正在制作一个控制台应用程序,用于从父ERP系统每天导入我们的CMS。我有一个时髦的问题与尝试/捕捉块。错误发生在我的尝试中,而不是让它捕捉到。起初,它确实进入了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;
        }
    }

c# try/catch未按预期工作

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

catch (Exception e)

看看它现在是否进入了catch,并记录你的异常,以确切地知道你得到了什么

我认为这可能是visual studio调试设置和另一种类型的异常(在DbEntityValidationException下的继承层次上没有发现)的事实的组合。

请尝试使用更通用的异常处理,甚至使用:

catch (Exception ex)

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