Exception Breeze EF6 SaveChanges不';t传播异常

Exception Breeze EF6 SaveChanges不';t传播异常,exception,breeze,entity-framework-6,savechanges,Exception,Breeze,Entity Framework 6,Savechanges,在EFContextProvider(EF6)SaveChangesCore方法中,异常处理如下所示: } catch (Exception e) { while (e.InnerException != null) { e = e.InnerException; } throw e; } 这将只抛出最内部的异常,并隐藏外部异常显示的相关信息 当SaveChanges进程经过多个层时,下一个直接层异常将丢失,并且只抛出链中的最后一个异常。它不允许很好地处理调用方的异常。更新后的帖子 从Bree

在EFContextProvider(EF6)SaveChangesCore方法中,异常处理如下所示:

} catch (Exception e) {
while (e.InnerException != null) {
e = e.InnerException;
}
throw e;
}
这将只抛出最内部的异常,并隐藏外部异常显示的相关信息


当SaveChanges进程经过多个层时,下一个直接层异常将丢失,并且只抛出链中的最后一个异常。它不允许很好地处理调用方的异常。

更新后的帖子

从Breeze 1.4.6开始,服务器上抛出的任何.NET异常现在都可以在任何异步Breeze结果的httpResponse.data属性中以其原始形式提供。Breeze仍将向下搜索以提取“良好”的错误消息,但不再掩盖初始异常

以下原创帖子-----------------

这是一个有趣的观点。我们这样做的原因是,大多数客户端应用程序都不是为了通过异常链导航而编写的,我们希望向客户端公开最“相关”的错误。我们看到的大多数应用程序都直接暴露了客户端的“error.message”属性,并且带有EF错误,这几乎总是没有用的

然而,你的观点是正确的。我认为我们需要做的是创建一个新的异常,它有一个顶层消息,它是最内层的异常消息,但仍然为那些想要钻取的人公开整个异常链。我已经为此添加了一个内部特性请求,并将尝试在近期发布(可能不是下一个,因为我们已经在测试该版本)

谢谢你的意见