1

我有一个 n 层 Web 应用程序,我想在来自 DAL(数据访问层)的每个方法中捕获特定类型的异常,并将其作为特定类型的新异常重新抛出。

我的 DAL 中有很多方法,所以我不想开始用 try/catch 包装每个方法。

我认为使用异常处理应用程序块可以做到这一点,但我找不到任何关于如何做到这一点的好的文档......
我也不熟悉应用程序块的早期版本。

4

1 回答 1

1

您的 DAL 存储库有接口吗?我会使用装饰器模式来实现接口。所有装饰器都会捕获异常,然后构建一个新异常并将其抛出到上层

需要注意的是,在我们的 n 层应用程序中,我们总是让异常自然地抛出,并在一个地方捕获它们并记录它们。我们只在绝对必要的情况下创建特定的例外,而且这种情况非常罕见。

原因是代码的可维护性。当 try/catch 无处不在时,代码很容易变得不可读。

于 2011-03-24T11:07:11.127 回答