Инкапсулирует и идентифицирует общие ошибки коммуникации промежуточного ПО для стандартизированной обработки ошибок.
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 13073fe45989ПроисхождениеОткрытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Инкапсулирует и идентифицирует общие ошибки коммуникации промежуточного ПО для стандартизированной обработки ошибок.
Класс ara::com::ComErrorDomain представляет домен коммуникационных ошибок для идентификации общих, не зависящих от конкретного интерфейса ошибок в API ara::com ([SWS_CM_11265]). Он предоставляет описания ошибок для таких кодов ошибок, как ComErrc::kCommunicationFailure, и позволяет запрашивать их через Message() или преобразовывать в исключение с помощью ThrowAsException() ([SWS_CM_11332]). Поскольку его конструктор по умолчанию удален, он выступает в качестве не имеющего состояния, потокобезопасного экземпляра домена для несущего ошибку ara::core::Result.
Контекст
Класс ara::com::ComErrorDomain представляет стандартизированный домен коммуникационных ошибок Adaptive Platform для функционального кластера Communication Management (SWS CommunicationManagement с. 439). Он наследует от базового класса ara::core::ErrorDomain и определяет семантический контекст для общих ошибок, которые могут возникать во время вызовов методов или передачи данных, но не специфичны для отдельного ServiceInterface ([SWS_CM_11265]). В архитектуре ошибок ara::com он систематически разграничивает общие сбои коммуникации, ошибки контроля E2E и специфичные для приложения ошибки сервисов (SWS CommunicationManagement §7.5.22.6 «Error Related Data Types»).
К его ключевым участникам взаимодействия относятся Adaptive Application, реализации сервисов и прокси промежуточного ПО, а также типы данных базовой системы ara::core::ErrorCode и ara::core::Result (EXP ARAComAPI §4.7 «Error Handling»). Для семантического связывания типов класс предоставляет псевдонимы типов Errc для перечисления кодов ошибок ComErrc ([SWS_CM_11336]) и Exception для соответствующего класса исключений ComException ([SWS_CM_11337]).
Как класс спецификации домена ошибок, создание ara::com::ComErrorDomain предотвращено удалением конструктора по умолчанию ComErrorDomain() = delete; ([SWS_CM_11330]). Интерпретация: предоставление экземпляра домена, вероятно, выполняется платформой в виде статического синглтона, поэтому компонентам приложения не требуется динамически инстанцировать домен или управлять им. Вопрос Q-bf957a108c0a5378 (открытый)
Экземпляр выступает в роли дескриптора без состояния, не имеющего изменяемых атрибутов. Все предоставляемые методы, такие как Name() ([SWS_CM_11331]) и Message() ([SWS_CM_11332]), объявлены как const noexcept. Это гарантирует полную потокобезопасность при параллельных запросах ошибок несколькими потоками приложения и промежуточного ПО.
Путь использования
Типичный сценарий использования включает обнаружение, передачу и обработку ошибки через интерфейсы ara::com:
Приложение инициирует взаимодействие с сервисом, например, через оператор вызова класса методов operator() ([SWS_CM_00196]).
Если промежуточное ПО обнаруживает ошибочную ситуацию во время обработки, такую как сбой связи или несконфигурированная ошибка приложения ([SWS_CM_00048]), вызывается операция SetError у соответствующего Promise (SWS CommunicationManagement с. 300).
При этом конструируется ara::core::ErrorCode, домен которого установлен в ara::com::ComErrorDomain ([SWS_CM_11329]), а его числовой код — в определенное значение перечисления, такое как ComErrc::kCommunicationFailure ([SWS_CM_10432]).
Возвращенный приложению ara::core::Future или ara::core::Result передает код ошибки вызывающей стороне в состоянии ошибки (EXP ARAComAPI §4.7 «Error Handling»).
Приложение проверяет Result и использует функции домена Name() ([SWS_CM_11331]) и Message() ([SWS_CM_11332]) для разрешения сообщений об ошибках с целью журналирования или диагностики.
Если логика приложения ожидает исключение и исключения C++ активированы, преобразование в ComException может быть инициировано с помощью ThrowAsException() ([SWS_CM_11333]).
Концепция ошибок ara::com строго разграничивает устранимые ошибки (recoverable errors) и серьезные нарушения программирования (violations или corruptions) (EXP ARAComAPI §4.7 «Error Handling»). Устранимые ошибки обрабатываются через ara::core::Result и ara::core::ErrorCode, причем коды ошибок домена ComErrorDomain адресуются через псевдоним идентификатора Errc ([SWS_CM_11336]).
Если, к примеру, во время удаленного вызова происходит прерывание передачи, система сообщает о ComErrc::kCommunicationFailure ([SWS_CM_10432]). При несконфигурированной ошибке приложения промежуточное ПО прерывает вызов и также устанавливает соответствующий код ошибки домена ([SWS_CM_00048], SWS CommunicationManagement с. 300).
Если код ошибки должен быть выброшен в виде исключения, ThrowAsException() инстанцирует исключение типа ComException ([SWS_CM_11337]) и выбрасывает его ([SWS_CM_11333]). Этот метод не является безопасным с точки зрения исключений (not exception safe) и, согласно спецификации, не участвует в разрешении перегрузки при отключенных исключениях C++ ([SWS_CM_11333]). Неустранимые системные нарушения, напротив, приводят непосредственно к аварийному завершению платформы и не обрабатываются через ComErrorDomain (EXP ARAComAPI §4.7 «Error Handling»).
Данное руководство было создано ИИ на основе спецификаций AUTOSAR R25-11.
Creates a new instance of ara::com::ComException from errorCode and throws it. As per [SWS_CORE_10304], this function does not participate in overload resolution when C++ exceptions are disabled in the compiler toolchain.
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 4c51965f3a93ПроисхождениеОткрытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Использование
Функция-член Name() класса ara::com::ComErrorDomain служит для стандартизированного получения текстового обозначения этого домена ошибок ([SWS_CM_11331]). Вызов выполняется синхронно, не требует входных параметров и возвращает константный указатель типа const char * на соответствующую строку ([SWS_CM_11331]). Точное представление возвращаемой строки определяется требованиями к ara::com::ComErrorDomain в [SWS_CORE_90023]. Объявление подключается через заголовочный файл ara/com/com_error_domain.h ([SWS_CM_11331]).
Обработка ошибок и параллелизм
Метод снабжен спецификацией noexcept и классифицирован как исключение-безопасный (exception safe) ([SWS_CM_11331]). В случае ошибки исключения не выбрасываются и специфические коды ошибок не возвращаются, так как речь идет о чистой операции чтения. Поскольку адресуется исключительно неизменяемая строковая константа, метод, вероятно, является реентерабельным и безопасно поддерживает параллельные вызовы из нескольких потоков без внешней синхронизации. Вопрос Q-a9f6ae55558ebb1f (открытый)
Взаимодействие
Функция является составной частью стандартизированных идентификаторов доменов ошибок в рамках управления коммуникацией (AUTOSAR_AP_SWS_CommunicationManagement §1 «Change History»). Схема именования и интерфейсов согласованно реализована для родственных доменов: так, сквозной (End-to-End) домен ошибок ara::com::e2e::ComE2EErrorDomain через [SWS_CM_12507], а также домен ошибок SecOC-FVM apext::com::secoc::ComSecOcFvmErrorDomain через [SWS_CM_12518] определяют аналогичные методы Name() для идентификации.
Этот текст был сгенерирован ИИ на основе спецификации AUTOSAR.
Руководство разработчика реализации в подготовке (сложность I1)
Creates a new instance of ara::com::ComException from errorCode and throws it. As per [SWS_CORE_10304], this function does not participate in overload resolution when C++ exceptions are disabled in the compiler toolchain.
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: bc30613084e7ПроисхождениеОткрытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Использование
Функция-член ThrowAsException домена ошибок ara::com::ComErrorDomain ([SWS_CM_11333]; SWS CommunicationManagement §8.12.4.2.2.3 «ThrowAsException») синхронно создает из переданного кода ошибки errorCode (типа const ara::core::ErrorCode&) экземпляр исключения ara::com::ComException и немедленно выбрасывает его. Интерфейс не имеет возвращаемого значения (void) и объявляется через заголовочный файл ara/com/com_error_domain.h.
Обработка ошибок и безопасность исключений
Сигнатура объявлена с noexcept(false) и специфицирована как не исключение-безопасная (not exception safe) ([SWS_CM_11333]), поскольку вызов исключения является основной целью функции. Специфические сообщения DET или DEM для этого вызова не определены.
Граничные условия и ограничения
В качестве центрального граничного условия действует следующее: если исключения C++ отключены в тулчейне компилятора, функция согласно [SWS_CORE_10304] не участвует в разрешении перегрузки ([SWS_CM_11333]). Интерпретация: в архитектурах программного обеспечения с отключенной обработкой исключений функция, следовательно, не должна быть вызываемой во время компиляции. Вопрос Q-437f825160e6801e (открытый)
gemini-3.8-flash-low· 2026-10-13 · Немецкий оригинал