Обработка ошибок
Во время исполнения обработчика на встроенном языке при возникновении ошибки может быть выброшено исключение. «1С:Шина» создает из выброшенного обработчиком запроса исключения SOAP ошибку и формирует HTTP-код ответа 500 (Internal server error). В элементе проекта можно описать ошибки (исключения встроенного языка), которые могут быть выброшены обработчиками сервиса. Для таких исключений «1С:Шина» создаст описание SOAP-ошибок в WSDL сервиса. Если обработчик выбрасывает не описанное в элементе проекта исключение, WSDL сервиса не будет содержать описания соответствующей ошибки, а в SOAP-сообщении будет только общая информация о возникшей ошибке, взятая из сообщения выброшенного исключения.
Пример не описанного в проекте исключения
В XBSL-обработчике SOAP-сервиса выбрасывается исключение:
метод ДобавитьВКорзину(): Cart
...
выбросить новый ИсключениеВыполнения("Произошла ошибка при обработке запроса веб-сервиса")
;
Ответ SOAP-сервиса:
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<S:Body>
<S:Fault xmlns:ns3="http://www.w3.org/2003/05/soap-envelope">
<faultcode>S:Server</faultcode>
<faultstring>Произошла ошибка при обработке запроса веб-сервиса</faultstring>
</S:Fault>
</S:Body>
</S:Envelope>
Вы также можете создать пользовательское исключение в модуле SOAP-сервиса. Название исключения необходимо указать в свойстве Ошибки. Данное свойство есть как у элемента проекта SOAP-сервис, так и у обработчиков операций. Общие для всех обработчиков ошибки следует указать в свойстве элемента проекта, а специфические для конкретного обработчика — в свойстве обработчика.
Из исключения на встроенном языке