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