我有一个自托管的Net Tcp WCF服务,我有以下方法
Subscribtion GetSubscribtion(int subscribtionId)
{
Subscribtion s;
if (_subscribtionTable.TryGetValue(subscribtionId, out s) == false)
{
Console.WriteLine("Not Found SessionID");//for debugging
throw new ArgumentException("Invalid Subscription Id");
}
return s;
}
抛出异常是报告服务编程中错误的好方法吗?
答案 0 :(得分:5)
在WCF中,您应该定义并抛出FaultException。以下文章提供了示例和详细信息:
答案 1 :(得分:2)
由于WCF固有地可以与非.NET平台互操作,因此使用严格的.NET构造的异常是一个坏主意。如果你有一个连接,它通常也会破坏你的WCF连接(例如在会话场景中)。
可行的方法是使用可互操作的SOAP故障,甚至可以传输到非.NET客户端。
马克