【发布时间】:2013-12-18 14:23:36
【问题描述】:
我需要知道 WCF 服务中异常处理的最佳模式是什么。
[ServiceContract]
public interface IAnasageServerService
{
[OperationContract(IsOneWay = false)]
[FaultContract(typeof(ServiceFaultData))]
FileConversionResponse ConvertDocument(FileConversionRequest request);
}
[DataContract]
public class ServiceFaultData
{
[DataMember]
public string ErrorCode { get; set; }
[DataMember]
public string ErrorDetails { get; set; }
[DataMember]
public string LogDetails { get; set; }
}
“ConvertDocument”调用了更多抛出异常的递归函数。
我想要什么: 我想知道哪个函数抛出了这个异常,但困难是由于递归性。我无法报告哪个函数抛出了这个异常。
public static void convertDocument(List<AnasageServer.PagesTopics> PagesTopics)
{
try
{
Func1();
Func2();
}
catch (FaultException<AnasageServer.ServiceFaultData> serviceFaultData)
{
Logger.log(serviceFaultData.Detail.Details);
throw new Exception(" Conversion Failed! " + serviceFaultData.Detail.ErrorCode);
}
我想将错误详细信息发送回客户端。但是由于递归错误细节被覆盖,我无法报告哪个函数抛出了这个异常。
更清楚,请看.
【问题讨论】: