【发布时间】:2010-12-25 23:07:38
【问题描述】:
我有一个带有演示层、业务层、数据访问层的 Web 应用程序。我通过与我的数据访问层连接的 Web 服务获取数据。意味着它是我正在使用的一种远程处理类型。在这种情况下,在我的 DAL 和业务层中,我必须处理哪个异常? 请指导我。
【问题讨论】:
标签: web-services
我有一个带有演示层、业务层、数据访问层的 Web 应用程序。我通过与我的数据访问层连接的 Web 服务获取数据。意味着它是我正在使用的一种远程处理类型。在这种情况下,在我的 DAL 和业务层中,我必须处理哪个异常? 请指导我。
【问题讨论】:
标签: web-services
我将 Web 服务视为表示层的另一种形式。它应该尽可能使用与 Web UI 相同的业务层组件。
即使在相当基本的 REST 样式服务中,我也尝试始终在请求的数据周围包含一个基本的 Response 包装器 - 这可以确保在发生故障时,我仍然可以返回带有错误标志集的响应,并且希望有一些描述性消息的形式。
我总是尽量确保我不会从较低层(例如 DAL)传递异常数据,因为这可能是一个安全问题。但是,通常应该记录该异常数据。
【讨论】:
众所周知,层架构在遵循应用程序的自然流程方面很差,所以,好吧,你有一些选择。我喜欢将这种代码放入业务层,尽管我无法提出令人信服的理由来挽救我的生命。
【讨论】:
我认为您不应该在数据访问层或业务层处理任何错误。你只需要把它扔到下一层,所以最后你在表示层有一个错误/异常。所有的错误/异常都应该在表示层处理,其背后的原因是..
不过,这是我的意见,并没有硬性规定。我也同意“Niko”在业务层处理此类事情。
以下文章可能会更深入地了解架构(但仍不是关于错误处理)。 - http://www.codeproject.com/KB/cs/CLR_SP_Linq_n-tier.aspx
【讨论】: