使用try catch进行验证

时间:2017-10-30 20:42:46

标签: asp.net-mvc entity-framework

我有一个服务层,它调用访问dbContext的存储库 如果我在服务层或控制器中捕获DbUpdateException,我冒的性能会比我创建自己的Save方法(如调用dbContext.SaveChanges方法,捕获异常并返回一个自定义类)更危险。包含例外列表?

1 个答案:

答案 0 :(得分:2)

捕获异常的级别只能真正影响堆栈跟踪的大小以及必须解开以恢复到稳定状态的大小。捕获异常的级别越高,跟踪的帧就越多。

然后,您需要关注从数据层到控制器/服务层的信息泄漏。如果在服务层中捕获异常,则可能将其与特定实现联系起来,例如捕获EF异常。

在该层中捕获特定于实现的异常会更加清晰,并返回与您的业务域相关的内容,以便在您切换dal的实现时,您不必重新编码服务层中的新例外。

一切都与隔离有关。