Webサービスからスローされたsoap例外をどのようにキャッチしますか?
質問
WebサービスでいくつかのSOAP例外を正常にスローします。例外をキャッチし、例外で呼び出される文字列とClientFaultCodeにアクセスしたいと思います。以下は、Webサービスの私の例外の1つの例です。
throw new SoapException("You lose the game.", SoapException.ClientFaultCode);
クライアントで、例外をスローする可能性のあるWebサービスからメソッドを実行しようとし、キャッチします。問題は、私のcatchブロックが何もしないことです。この例を参照してください:
try
{
service.StartGame();
}
catch
{
// missing code goes here
}
スローされた例外で呼び出される文字列とClientFaultCodeにアクセスするにはどうすればよいですか?
解決
SoapException
インスタンスをキャッチします。そうすれば、その情報にアクセスできます:
try {
service.StartGame();
} catch (SoapException e) {
// The variable 'e' can access the exception's information.
}
他のヒント
特定の例外をキャッチしたい場合があります。
try
{
service.StartGame();
}
catch(SoapHeaderException)
{
// soap fault in the header e.g. auth failed
}
catch(SoapException x)
{
// general soap fault and details in x.Message
}
catch(WebException)
{
// e.g. internet is down
}
catch(Exception)
{
// handles everything else
}
catch (SoapException soapEx)
{
//Do something with soapEx
}
所属していません StackOverflow