我们正在构建一个包含多个图层的大型Web应用程序。为了与业务层进行通信,我们正在使用Web层在需要数据时调用的服务层。不幸的是,似乎如果在业务层中抛出异常,似乎Web端的服务正在包装异常并重新抛出异常。我们正在寻找一种明确的方法来封装错误并将其记录下来,而WCF不会在原始文件周围包含新的异常。
由于
答案 0 :(得分:0)
有多种方法可以做到这一点。你提出的解决方案并不是我认为的一半,尽管它不会扩展太多(将业务特定的错误处理与Web相关的代码混合会产生某种耦合)。所有这些都取决于您的体系结构:您可以添加一个表面轻量级的层,将业务错误转换为Web错误,这些错误在Web层错误处理代码中处理。您也可以AoP并拦截呼叫并转换上述层的错误。
答案 1 :(得分:0)
FWIW,我们每个暴露的WCF服务层方法捕获一个System.Exception并将其传递给HandleException帮助程序(我猜这也可能是一个基本服务类方法)
HandleException:
if (ex is SomeTypeOfException)
...)