Как поймать исключение soap из веб-службы?
Я успешно создаю несколько исключений soap в моей веб-службе. Я хотел бы поймать исключения и получить доступ к строке и ClientFaultCode, которые вызываются с исключением. Вот пример одного из моих исключений в веб-службе:
throw new SoapException("You lose the game.", SoapException.ClientFaultCode);
в моем клиенте я пытаюсь запустить метод из веб-службы, которая может вызвать исключение, и я ловлю его. Проблема в том, что мои блоки catch ничего не делают. См. этот пример:
try
{
service.StartGame();
}
catch
{
// missing code goes here
}
Как я могу доступ к строке и ClientFaultCode, которые вызываются с брошенным исключением?
3 ответов
Лови 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
}