我有一个应用程序通过使用WCF开发的服务层提供其业务层。 我在想的是:这个服务层提供了诸如Create,Update等操作方法。然后,这些操作将这些调用重新路由到业务层。问题是:假设其中一个调用不接受空输入值(如:创建一个空对象),哪里是执行检查的最佳位置?我的个人答案是在两个地方(服务和业务),因为我可以保证在不使用服务层的情况下重用业务层,反之亦然。
我是对的吗?
由于 马可
答案 0 :(得分:1)
您的图书馆代码或代码 在你的高层使用 应用程序必须始终只抛出 例外,从不担心如何 处理它们。
这很重要,因为您可以在许多地方使用此库用于不同目的。
在您的应用程序表示层中,如果您正在使用库代码并且您知道可能的异常,那么请使用try / catch捕获它们。
答案 1 :(得分:0)
如果你没有处理DAL或BLL中的错误,那么它会一直冒泡直到你抓住它。 例外情况不会被“覆盖”。
如果您在DAL中处理它,那么您不再有例外。 如果你没有完全处理它,那么由于DAL中的错误处理错误,BLL仍然会抛出另一个异常。
一般规则如下:
处理特定错误,不要使用通用的catch-all。允许任何意外的异常进一步向上冒泡。
尝试在项目上运行FxCop,以查看违反最佳做法的位置。 http://www.gotdotnet.com/team/fxcop