Как вы ловите исключение выброшенного мыла из веб-службы? - PullRequest
12 голосов
/ 26 ноября 2009

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

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

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

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

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

Ответы [ 3 ]

11 голосов
/ 26 ноября 2009

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

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
}
7 голосов
/ 26 ноября 2009

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

try {
     service.StartGame();
} catch (SoapException e)  {
    // The variable 'e' can access the exception's information.
}
1 голос
/ 26 ноября 2009
catch (SoapException soapEx) 
{
  //Do something with soapEx
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...