【发布时间】:2011-09-17 18:10:39
【问题描述】:
我在 C# 中这样做。这些是代码层
视图 -> VIEWHANDLER -> BusinessLayer -> WCF 服务
视图调用 ViewHandler 调用业务层调用服务。该服务将抛出一些故障异常。所有异常都在 View 处理程序中处理。业务层重新抛出它从服务中获得的错误异常,以便在 VIEWHANDLER 中处理。在 BusinessLayer 中重新抛出它的最佳方法是什么?
catch(FaultException f)
{
throw f;
}
或
catch(FaultException f)
{
throw;
}
“throw f”是否会重置捕获的异常中保存的调用堆栈信息? throw 会按原样发送吗?
【问题讨论】:
-
是的,是的。如果您执行
throw f,那么当异常最终被捕获并处理时,它将附加错误的堆栈跟踪。