Как вы поймаете исключение с мылом из веб-сервиса?

Я удаляю несколько исключений для мыла в своем веб-сервисе. Я хотел бы получить исключения и получить доступ к строкам и ClientFaultCode, которые вызываются с исключением. Вот пример одного из моих исключений в веб-службе:

throw new SoapException("You lose the game.", SoapException.ClientFaultCode);

В моем клиенте я пытаюсь запустить метод из веб-службы, который может вызвать исключение, и я его поймаю. Проблема в том, что мои блоки catch не делают ничего. См. Этот пример:

try
{
     service.StartGame();
}
catch
{
     // missing code goes here
}

Как я могу получить доступ к строкам и ClientFaultCode, вызываемым с помощью исключенного исключения?

Ответ 1

Поймайте экземпляр SoapException. Таким образом вы можете получить доступ к своей информации:

try {
     service.StartGame();
} catch (SoapException e)  {
    // The variable 'e' can access the exception information.
}

Ответ 2

Вы можете захотеть поймать определенные исключения.

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
}

Ответ 3

catch (SoapException soapEx) 
{
  //Do something with soapEx
}