在哪里抛出分层架构的例外?
-
14-09-2020 - |
题
我是一个应用程序,它通过使用WCF开发的服务层提供其业务层。 我正在考虑的是:这层服务层提供了创建,更新等的操作方法。然后,这些操作将这些呼叫重新路由到业务层。问题是:假设其中一个呼叫不接受空输入值(如:创建空对象),在哪里执行检查的最佳位置?我的个人回答是在所有地方(服务和业务),因为我可以保证在不使用服务层和伏维尔斯的情况下重复使用业务层。
我是对的吗?
谢谢 Marco
解决方案
您的图书馆代码或代码 用你的更高层次使用 应用程序必须始终只抛出 例外,永远不要担心如何 处理它们。
这很重要,因为您可以在许多地方使用此库以进行不同的目的。
在应用程序演示层中,如果您正在消耗库代码,并且您知道可能的异常,那么尝试/ catch会捕获它们。
其他提示
如果您不处理DAL或BLL中的错误,那么它会冒泡,直到您抓住它。 例外没有“覆盖”。
如果在DAL中处理它,那么您不再具有异常。 如果您没有完全处理它,那么由于DAL中的错误处理错误,BLL仍然可以抛出另一个异常。
一般规则如下:
处理特定错误,不要使用通用捕获量。允许任何意外的异常进一步泡到堆栈。
尝试在项目上运行fxcop,查看您在哪里违反最佳实践。 http://www.gotdotnet.com/team/fxcop
不隶属于 StackOverflow