Webサービスからスローされたsoap例外をどのようにキャッチしますか?

StackOverflow https://stackoverflow.com/questions/1805345

  •  05-07-2019
  •  | 
  •  

質問

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
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top