Wcf 在分层体系结构中,在何处抛出异常?

Wcf 在分层体系结构中,在何处抛出异常?,wcf,architecture,exception,business-logic,service-layer,Wcf,Architecture,Exception,Business Logic,Service Layer,我有一个应用程序,它通过使用WCF开发的服务层提供其业务层。 我想的是:这个服务层提供了创建、更新等操作方法。然后,这些操作将这些调用重新路由到业务层。问题是:假设其中一个调用不接受空输入值(如:创建空对象),那么执行检查的最佳位置是哪里?我个人的答案是在两个方面(服务和业务),因为我可以保证业务层的重用,而不使用服务层和反之亦然 我说得对吗 谢谢 Marco如果你不处理DAL或BLL中的错误,那么它就会冒出气泡,直到你抓住它。 异常不会被“覆盖” 如果您在DAL中处理它,那么您就不再有异常。

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

我说得对吗

谢谢
Marco

如果你不处理DAL或BLL中的错误,那么它就会冒出气泡,直到你抓住它。 异常不会被“覆盖”

如果您在DAL中处理它,那么您就不再有异常。 如果您没有完全处理它,那么由于DAL中的错误处理不当,BLL仍然可能引发另一个异常

一般规则如下:

处理特定的错误,不要使用通用的包罗万象。允许任何未预料到的异常在堆栈中进一步冒泡

尝试在您的项目上运行FxCop,查看您违反最佳实践的地方。

您的库代码或 在您的应用程序中由更高的层使用 应用程序必须始终只抛出 例外情况,永远不要担心如何 来对付他们

这一点很重要,因为您可以在许多地方出于不同的目的使用此库

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