我有一个关于异常处理的问题。 我想这可能对你来说很容易,但对我来说,我只是不知道如何处理多层项目中的异常。处理多层异常的最佳方式
让我们说在我的解决方案中,我有几个项目。我有(较低)DataAccess,BizComponent,WCF,代理和演示(上)。
我尝试在DataAccess中“尝试捕获”并将异常抛出到BizComponent和BizComponent中我再次尝试“尝试捕获”并记录错误并再次将异常抛出到WCF。
在WCF和代理层,我做同样的事情。在表示层,我显示自定义消息给最终用户。
我的老人告诉我,我只需要开始在WCF和上层做“尝试捕捉”。 而且我不需要在DataAccess和BizComponent中执行操作,因为它将被捕获到 WCF中。
我是否应该尝试捕获DataAccess中的异常,BizComponent和 会抛出异常,或者我应该只尝试捕获WCF并开始向上层发送 ?
哪一个更好?
如果你不清楚我的问题,请告诉我。 这是我的第一个多层项目,所以它让我感到困惑。 在此先感谢。
我在DataAccess的“try catch”中什么都没做,只是抓住并抛出异常到上层。如果我不向上层提供任何东西,是否需要? – kevin
@kevin如果你没有做任何事情,那么它没有任何用途,所以省略它。如果您需要执行任何清理,请使用'try finally'而不是'try catch'。 – detaylor
@kevin - 我不知道如何重新抛出你的异常,但是(假设你抛出了相同的异常),你应该使用'throw;'而不是'throw ex;',因为这样可以保持堆栈,引发初始异常 – detaylor