Перейти к основному содержимому

Обработка ошибок SOAP-сервиса

Если в результате выполнения операции в обработчике SOAP-сервиса будет выброшено исключение, то будет возвращена SOAP-ошибка. Вы можете поймать и обработать эту ошибку в клиенте SOAP-сервиса, например, получить детали ошибки.

Предположим, в SOAP-сервисе определена ошибка ОшибкаОстатковНаСкладе, с атрибутами ДобавленоВКорзину и ОстатокНаСкладе. Данная ошибка выбрасывается, когда покупатель пытается добавить в корзину большее количество товара, чем есть сейчас в наличии. В проекте создан клиент SOAP-сервиса с названием КлиентСервисаМагазина. Тогда получить доступ к типу ошибки, определенной в SOAP-сервисе, можно следующим образом: КлиентСервисаМагазина.ОшибкаОстатковНаСкладе. Чтобы получить доступ к деталям ошибки, следует обратиться к свойству Детали: КлиентСервисаМагазина.ОшибкаОстатковНаСкладе.Детали. Затем вы можете обратиться к каждому свойству ошибки по отдельности: КлиентСервисаМагазина.ОшибкаОстатковНаСкладе.Детали.ДобавленоВКорзину, КлиентСервисаМагазина.ОшибкаОстатковНаСкладе.Детали.ОстатокНаСкладе.

Код обработки ошибки в таком случае может выглядеть следующим образом:

знч Клиент = новый КлиентСервисаМагазина()
знч Товар = новый КлиентСервисаМагазина.Товар(Количество = 11, Наименование = "МойТовар")

попытка
знч ОтветСервиса = Клиент.ДобавитьВКорзину(Товар)
знч Корзина = ОтветСервиса.Результат
// Перевести пользователя в корзину для дальнейшей оплаты
поймать Исключение: КлиентСервисаМагазина.ОшибкаОстатковНаСкладе
знч Добавлено = Исключение.Детали.ДобавленоВКорзину
знч Остаток = Исключение.Детали.ОстатокНаСкладе
// Вывести пользователю информацию о деталях ошибки
;