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