2010-07-13 88 views
2

我有一个应用程序通过使用WCF开发的服务层提供其业务层。 我在想的是:这个服务层提供了像创建,更新等操作方法。这些操作会将这些调用重新路由到业务层。问题是:假设其中一个调用不接受空输入值(如:创建空对象),那么执行检查的最佳位置在哪里?我个人的答案在两个地方(服务和业务),因为我可以保证业务层的重用,而不使用服务层,反之亦然。在分层体系结构中抛出异常的地方?

对吗?

感谢 马尔科

如果你不处理在DAL或BLL错误

回答

1

你的库代码,或者是在你的应用程序 使用较高层必须始终只能扔 例外,从不担心如何 对付他们 的代码。

这很重要,因为您可能会在很多地方将此库用于不同的目的。

在您的应用程序表示层中,如果您正在使用库代码并且知道可能的异常,那么请使用try/catch来捕获它们。

0

,然后直到你抓住它,它冒泡。 异常不会被“覆盖”。

如果您在DAL中处理过,则不再有例外。 如果你没有完全处理它,那么BLL仍然可能会抛出另一个异常,因为DAL中处理错误的方式不正确。

一般的规则是这样的:

处理特定的错误和不使用一个通用的包罗万象的。允许任何意想不到的例外情况进一步上涨。

尝试在您的项目上运行FxCop,以查看您违反了最佳做法的位置。 http://www.gotdotnet.com/team/fxcop