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