尝试抓住问题

use*_*358 4 c# wcf exception

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

查看 - > VIEWHANDLER - > BusinessLayer - > WCF服务

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

catch(FaultException f)
{
throw f;
}
Run Code Online (Sandbox Code Playgroud)

要么

catch(FaultException f)
{
throw;
}
Run Code Online (Sandbox Code Playgroud)

"throw f"是否会重置捕获的异常中保存的调用堆栈信息?并抛出发送它原样?

Ode*_*ded 6

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

throw; 将不会.

在任何一种情况下,如果这是您在catch块中所做的全部,那么最好不要使用try-catch块,因为它没有意义.