试着回答问题

本文关键字:问题 | 更新日期: 2023-09-27 17:59:23

我在c#中执行此操作。这些是的代码层

VIEW->VIEWHANDLER->BusinessLayer->WCF服务

视图调用ViewHandler,ViewHandler调用调用服务的业务层。该服务将引发一些故障异常。所有异常都在视图处理程序中处理。业务层重新抛出它从服务中得到的故障异常,就像要在VIEWHANDLER中处理的那样。在BusinessLayer中重新思考它的最佳方式是什么?

catch(FaultException f)
{
throw f;
}

catch(FaultException f)
{
throw;
}

"throw f"是否重置捕获的异常中保存的调用堆栈信息?投掷会按原样发送吗?

试着回答问题

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

throw;不会。

在任何一种情况下,如果这就是你在catch块中所做的全部,那么你最好不要使用try-catch块,因为这毫无意义。

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