在Entity Framework4中捕获SQL异常?最佳实践是什么?

3

您在数据层中使用什么方法来捕获SQL异常? 是否有人编写了通用的SQL异常处理程序,可以捕获最常见的错误?

您是如何做到的?有没有相关的示例?

谢谢。


+1 - 好问题,我目前也正在处理这个问题。目前我正在捕获异常并将它们抛出到自定义的异常中。 - RPM1984
1个回答

1

只有底层处理意外异常

你的数据层(例如Entity Framework)引发的异常应仅由业务层处理。如果必要,业务层可以为表示层(UI)引发更高级别的异常。

不要在应用程序的多个层之间抛出和捕获异常。这被认为是不良实践。表示层应仅处理业务层异常。

永远不要使用以下方式吞噬异常:

try {} catch (Exception) { // who cares }

尽早捕获预期的异常

始终尝试尽早处理预期的异常(例如FileNotFoundException)。如果您可以处理它,请直接在那里处理。如果不能,则重新抛出自定义异常并在底层处理它。

重新抛出异常时不要清除堆栈跟踪

隐式地捕获并重新抛出(见)

try {} catch (Exception) { throw; }

并不是显式地

try {} catch (Exception ex) { throw ex; }


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接