【发布时间】:2014-08-02 00:37:13
【问题描述】:
我已经阅读了许多教程和示例代码,试图学习单元测试和存储库模式,并且我试图弄清楚如何处理隐式声明类型的异常。
例如,假设我使用以下内容创建和发布对象。
var issue = issueRepository.GetIssueById(issueId);
如果我在 try catch 块中创建此变量,则该变量将仅适用于 try,因此我必须在 try 中包含与此相关的所有内容。我可以将尝试之外的问题声明为新问题,但我一直在阅读的最佳实践建议已经说过尽可能使用隐式。将try catch放在存储库中会更好吗?如果是这样,您将如何将其返回给控制器?
对不起,如果问题是初步的,但我无法找到任何具有这些模式的异常处理的示例代码。
【问题讨论】:
-
存储库中的代码与针对返回的
issue执行的代码无关吗? -
当
Id找不到Issue时,是否应该在Repository级别抛出异常? -
我什至认为不会在不存在的 ID 上引发异常。也许如果 issueId 是像
-1(InvalidArgumentException) 但return null;和检查它似乎更合适的东西。 (当然,这个例子很可能不是 Exact 案例,而只是一个例子) -
到目前为止,我使用此模式没有遇到任何异常,除非在数据库关闭时遇到过一次。所以是的,这只是一个例子,我正在寻找更多的最佳实践方法。
标签: asp.net-mvc entity-framework repository-pattern