我正在尝试在WCF服务中实现异常处理。 我希望将此异常抛给客户端,以便记录和处理它。
我不知道我写的代码是对还是错。 这只会让我觉得“用户代码无法处理故障” 我应该如何解决,以便我可以在客户端处理我的异常?
WCF服务中的代码:
try
{
}
catch (FaultException fex)
{
throw fex;
}
catch (Exception ex)
{
throw ex;
}
客户代码:
try
{
}
catch (FaultException fex)
{
Logger.AddExceptionToDb(fex);
}
catch (Exception ex)
{
Logger.AddExceptionToDb(ex);
}
答案 0 :(得分:6)
您应该应用 [FaultContract(YourFaultClass)] 属性为抛出异常的方法。
[OperationContract]
[FaultContract(typeof(YourFaultClass))]
void Foo(int par1);
如何从服务中抛出它:
throw new FaultException<YourFaultClass>(new YourFaultClass());
要获得更多帮助,请查看:http://msdn.microsoft.com/en-us/library/cc949036.aspx