尝试抓住问题

时间:2011-06-18 11:53:32

标签: c# wcf exception

我在c#中这样做。这些是代码层

视图 - > VIEWHANDLER - > BusinessLayer - > WCF服务

视图调用ViewHandler,它调用调用服务的业务层。该服务将抛出一些故障异常。所有异常都在View处理程序中处理。业务层重新抛出从服务中获取的故障异常,以便在VIEWHANDLER中处理。在BusinessLayer中重新抛出它的最佳方法是什么?

catch(FaultException f)
{
throw f;
}

catch(FaultException f)
{
throw;
}

“throw f”会重置捕​​获的异常中保存的调用堆栈信息吗?并抛出按原样发送它吗?

2 个答案:

答案 0 :(得分:6)

是的,throw f;将重置堆栈。

throw;不会。

在任何一种情况下,如果您只是在catch块中执行此操作,那么最好不要使用try-catch块,因为它毫无意义。

答案 1 :(得分:3)

是的,您应该使用throw而不是throw f。如果您未在catch声明中执行任何操作,则可以省略catch