gpt4 book ai didi

c# - 3 层应用程序的异常捕获最佳实践

转载 作者:太空狗 更新时间:2023-10-30 00:44:39 25 4
gpt4 key购买 nike

我有一个包含以下 3 层的 WCF:

  1. 服务
  2. BLL
  3. 动态链接库。

谁能帮我解决一下:

在以下情况下,上面哪一层是捕获和记录异常的最佳位置:

Scenario 1:

Exception happens on DLL.

Scenario: 2:

Exception happens on BLL.

此外,我是否应该总是在 Try and Catch 时包装对 BLL 的调用?

最佳答案

这取决于您的系统,但我可能会在 BLL 中记录异常。请注意,您“记录”而不是捕捉!也就是说 - 在捕获结束时将重新抛出!

我根本没有在服务中捕获任何内容 - 这只是为了与客户端通信 - 恕我直言,无需在其中放置任何逻辑。

当然:在抛出异常的地方捕获您的预期异常,让未异常的通过。

例如:场景 1 - 也许捕获 SqlExceptions,尝试处理它们,如果没有将它们包装在一些 DAL-Exception 中并抛出它们。场景 2 - 也许从第 3 层捕获 DAL 异常,看看您是否可以处理这些异常或再次包装它们,...

恕我直言,处理、记录和屏蔽所有类型的意外异常(catch (Exception))几乎从来都不是一个好主意——此后应用状态将非常不确定。

关于c# - 3 层应用程序的异常捕获最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7357957/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com