FaultException<T>()スローされる例外のサービスにとらわれない、クライアントcatch(FaultException<T>)
-
27-09-2019 - |
質問
まぁ私が見落とさないようです。いて以下の操作契約
public double DivideByZero(int x, int y)
{
if (y == 0)
{
throw new FaultException<ArgumentException>
(new ArgumentException("Just some dummy exception")
,new FaultReason("some very bogus reason"), new FaultCode("007"));
}
return x / y;
}
次からクライアント:-
Console.WriteLine("Enter the x value");
string x = Console.ReadLine();
Console.WriteLine("Enter the Y value");
string y = Console.ReadLine();
try
{
double val = client.DivideByZero(Convert.ToInt32(x), Convert.ToInt32(y));
Console.WriteLine("The result is " + val.ToString());
}
catch(FaultException<ArgumentException> exp)
{
Console.WriteLine("An ArgumentException was thrown by the service "+ exp.ToString());
}
catch (Exception exp)
{
Console.WriteLine(exp.ToString());
}
上記の場合catch(FaultException exp)(第catchブロックとArgumentExceptionのクライアントコードブロックは実行されます。しかし、削除ArgumentExceptionてcatch(FaultException exp)と同じcatchブロックが実行されます。からないのでこって投げFaultExceptionから運用ます。私欠います。
感謝の皆さまのご協力のもと、 Ashish
編集時は更新サービスの参考になったのは捕まえることが FaultException<ArgumentException>
ます。
解決
いてみることに FaultException<DataContract>
一部の任意のデータ契約タイプです。見れば、生成されたコードさわやかな風を感じそうなポップのプロキシクラス、ベットだとの ArgumentException
な直列化さに期待するということです。
他のヒント
の場合は派生する例外クラスは、いかご確認くださいカスタム例外は、直列化コンストラクタ
protected MyCustomException(
SerializationInfo info,
StreamingContext context)
: base(info, context) { }
所属していません StackOverflow