Служит для сообщения и инкапсуляции ошибок синхронизации времени в форме исключения с соответствующим кодом ошибки.
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 02ba32fb22ccПроисхождениеОткрытые вопросы (2)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Служит для сообщения и инкапсуляции ошибок синхронизации времени в форме исключения с соответствующим кодом ошибки.
Класс исключения ara::tsync::TsyncException служит для инкапсуляции и передачи ошибок, возникающих во время синхронизации времени в Adaptive Platform. Он наследуется от ara::core::Exception и при своем конструировании в обязательном порядке принимает специфический ara::core::ErrorCode, описывающий причину ошибки [SWS_TS_00903]. Конструктор объявлен как noexcept, благодаря чему инстанцирование исключения гарантированно происходит с соблюдением безопасности исключений и потокобезопасности [SWS_TS_00903]. Приложения могут перехватывать исключение в своих путях обработки ошибок для целенаправленного анализа содержащегося кода ошибки. Вопрос (открытый)
Контекст
Класс ara::tsync::TsyncException представляет собой выделенный класс исключения для функциональной области Time Synchronization (tsync) в рамках AUTOSAR Adaptive Platform. Согласно спецификации он объявляется в заголовочном файле ara/tsync/tsync_error_domain.h и служит центральным типом для представления исключений, вызываемых синхронизацией времени [SWS_TS_00903]. Благодаря открытому наследованию от базового класса ara::core::Exception он органично встраивается в общеплатформенную архитектуру обработки ошибок.
В системной архитектуре ara::tsync::TsyncException берет на себя роль носителя информации между компонентами реализации службы синхронизации времени и модулями приложений. Если в рамках синхронизации возникает серьезная ошибка, она не отбрасывается изолированно, а сообщается в форме стандартизированного исключения. При этом класс тесно взаимодействует с ara::core::ErrorCode, который кодирует и инкапсулирует конкретную причину ошибки [SWS_TS_00903].
Контекстная диаграмма: классификация ara::tsync::TsyncException во взаимодействии с Time Synchronization, ara::core::ErrorCode и ara::core::Exception. Источники: [SWS_TS_00903]
Жизненный цикл
Жизненный цикл экземпляра ara::tsync::TsyncException начинается с его явного инстанцирования. Спецификация предусматривает для этого конструктор, принимающий ровно один код ошибки типа ara::core::ErrorCode: explicit TsyncException(ara::core::ErrorCode errorCode) noexcept[SWS_TS_00903]. Объявление с explicit предотвращает неявное и непреднамеренное преобразование кодов ошибок в объекты исключений.
Для создания объекта AUTOSAR формулирует строгие гарантии: конструирование явно специфицировано как безопасное относительно исключений (exception safe) и потокобезопасное (thread-safe) [SWS_TS_00903]. Ключевое слово noexcept гарантирует, что сам конструктор ни при каких условиях не сгенерирует дальнейшего исключения [SWS_TS_00903]. Это принципиально важно, так как генерация исключения обычно происходит в пути обработки ошибки, и сбой на этом этапе привел бы к неконтролируемому состоянию системы.
После создания объект подчиняется обычной семантике исключений C++: он передается вверх по стеку вызовов, пока не будет перехвачен соответствующим обработчиком. С выходом из блока catch время жизни экземпляра исключения завершается, и ресурсы детерминированно освобождаются.
Путь использования
Типичный процесс использования ara::tsync::TsyncException подразделяется на идентификацию ошибки, создание объекта и перехват на стороне приложения:
Идентификация ошибки: Time Synchronization обнаруживает во время выполнения отклонение или состояние ошибки и формирует подходящий ara::core::ErrorCode[SWS_TS_00903].
Создание и генерация исключения: с использованием конструктора инстанцируется и генерируется объект ara::tsync::TsyncException с определенным кодом ошибки [SWS_TS_00903].
Перехват ошибки: вызывающий компонент перехватывает исключение в структурированном блоке обработки исключений.
Разработчики могут в своих приложениях либо обрабатывать исключение специфически как const ara::tsync::TsyncException&, либо перехватывать полиморфно через базовый класс const ara::core::Exception&[SWS_TS_00903]. Вопрос Q-0c8129359ef114e8 (открытый) Для доступа к определению типа требуется подключение заголовочного файла ara/tsync/tsync_error_domain.h[SWS_TS_00903].
Сценарии ошибок
Являясь классом исключения, ara::tsync::TsyncException служит для явного представления сценариев ошибок. Центральным компонентом здесь является инкапсулированный ara::core::ErrorCode, предоставляющий подробную информацию о конкретной причине ошибки в пределах домена ошибок [SWS_TS_00903].
Существенной особенностью является отсутствие конструктора по умолчанию без параметров. За счет этого обеспечивается невозможность существования экземпляра исключения без связанного с ним кода ошибки [SWS_TS_00903]. Гарантия noexcept конструктора дополнительно гарантирует, что инкапсуляция и сигнализация ошибки не будут перекрыты вторичными ошибками исключений [SWS_TS_00903].
Данное руководство было сгенерировано ИИ на основе спецификации AUTOSAR R25-11.
UML-диаграмма классов
Hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); Klicken öffnet die jeweilige Klassenseite.
gemini-3.8-flash-low· 2026-10-13 · Немецкий оригинал