Encapsulation of an ErrorDomain. An ErrorDomain is the controlling entity for ErrorCode’s error code values, and defines the mapping of such error code values to textual representations. This type constitutes a base class for ErrorDomain implementations. This class is a literal type, and subclasses are strongly advised to be literal types as well.
Sirve como clase base para el control de códigos de error y asigna valores de error específicos de dominio a mensajes de texto.
GENERADO POR IAno revisadoModelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: d0712f7c0a23ProcedenciaPreguntas abiertas (2)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán
Sirve como clase base para el control de códigos de error y asigna valores de error específicos de dominio a mensajes de texto.
La clase ara::core::ErrorDomain sirve como clase base abstracta para el control de valores de error y asigna códigos específicos de área a sus representaciones textuales [SWS_CORE_00153]. Las subclases encapsulan un número de identificación único en todo el sistema y definen la traducción a textos de error inmutables, así como el tratamiento de excepciones específico del tipo. Para permitir su uso como Literal Type en tiempo de compilación, la clase base dispone de un destructor no virtual y protegido [SWS_CORE_00136]. Las operaciones de copia y de movimiento están completamente deshabilitadas, de modo que las instancias actúan como identidades inmutables.
Contexto
La clase ara::core::ErrorDomain constituye la base común para la gestión estructurada de errores en la AUTOSAR Adaptive Platform. Actúa como clase base abstracta para dominios de error concretos y asume la responsabilidad central de control de los valores de error que se encapsulan en ara::core::ErrorCode. Cada dominio abarca su propio espacio de nombres y define la correspondencia entre los valores de error específicos del dominio de tipo CodeType ([SWS_CORE_00122]) y representaciones de texto descriptivas a través de Message() ([SWS_CORE_00153]). Además, la clase proporciona el alias de tipo IdType ([SWS_CORE_00121]) para identificadores de dominio únicos en todo el sistema, así como SupportDataType ([SWS_CORE_00123]) para datos adicionales específicos del fabricante.
En el sistema global, ara::core::ErrorDomain interactúa con tres componentes esenciales:
Subclases: Los dominios de error específicos heredan de ara::core::ErrorDomain e implementan las funciones miembro virtuales puras para nombres de dominio, mensajes de error y tratamiento de excepciones.
ara::core::ErrorCode: Representa un valor de error concreto y delega la determinación del texto descriptivo al dominio de error asignado.
Cliente / código de aplicación: Consulta información de estado a través del código de error o directamente en el dominio ([SWS_CORE_00152]) o recibe excepciones de C++ lanzadas ([SWS_CORE_00154]).
La instanciación de ara::core::ErrorDomain se realiza de forma protegida: el constructor posee visibilidad protected y espera un identificador de dominio único en todo el sistema de tipo IdType ([SWS_CORE_00135]). Dado que el constructor está declarado como constexpr y noexcept, la clase base admite la creación como Literal Type en tiempo de compilación. Se recomienda expresamente a las subclases garantizar también esta propiedad como Literal Type.
Cualquier duplicación o transferencia de instancias de dominio está deshabilitada:
El constructor de copia ([SWS_CORE_00131]) y el constructor de movimiento ([SWS_CORE_00132]) están declarados como eliminados (delete).
El operador de asignación por copia ([SWS_CORE_00133]) y el operador de asignación por movimiento ([SWS_CORE_00134]) también están eliminados.
El destructor está declarado como protected y definido como implementación predeterminada ([SWS_CORE_00136]). Se mantiene deliberadamente trivial y no virtual para que la clase pueda seguir siendo un Literal Type. Aunque ara::core::ErrorDomain proporciona interfaces virtuales puras, no se requiere ninguna destrucción polimórfica a través de punteros a la clase base ([SWS_CORE_00136]). En la práctica, es probable que las instancias concretas de dominio se gestionen como objetos de larga duración o estáticos (interpretación). Pregunta Q-a874dd64f6320d21 (abierta)
En cuanto a las relaciones de propiedad, todos los punteros a nombres ([SWS_CORE_00152]) y textos de error ([SWS_CORE_00153]) permanecen en posesión de la clase de dominio y los clientes no deben liberarlos. Todas las operaciones de lectura y comparación son seguras para subprocesos y seguras frente a excepciones ([SWS_CORE_00135], [SWS_CORE_00151]).
Ruta de uso
Dos instancias de ara::core::ErrorDomain se comparan como iguales si y solo si sus identificadores de dominio determinados mediante Id() ([SWS_CORE_00151]) coinciden ([SWS_CORE_00137], [SWS_CORE_00138]). El flujo típico en la resolución de errores y el tratamiento de excepciones se divide en los siguientes pasos:
Identificación del dominio: El cliente o el objeto de error determina el nombre del dominio como cadena terminada en nulo a través de Name() ([SWS_CORE_00152]).
Resolución de mensajes: A través de Message(errorCode) se pasa el valor numérico de error al dominio ([SWS_CORE_00153]). El dominio devuelve un texto de error basado en puntero, terminado en nulo, que nunca es nullptr.
Tratamiento de excepciones: Si se debe convertir un código de error en una excepción, el cliente invoca ThrowAsException(errorCode) ([SWS_CORE_00154]). A continuación, el dominio lanza una instancia adecuada de ara::core::Exception que encapsula el código de error pasado.
Al trabajar con ara::core::ErrorDomain, deben tenerse en cuenta los siguientes escenarios de error y requisitos de interfaz:
Pertenencia incorrecta a un dominio: Si se pasa al método Message() un errorCode que no procede de este ErrorDomain específico, esto representa la infracción especificada WrongDomainOfAn-ErrorCodeViolation ([SWS_CORE_00153]). Los emisores de la llamada deben garantizar que el código de error coincida con la instancia del dominio.
Excepciones de C++ deshabilitadas: El método ThrowAsException() no es seguro frente a excepciones (not exception safe) y lanza una excepción ([SWS_CORE_00154]). Si las excepciones de C++ están deshabilitadas en la cadena de herramientas del compilador, esta función no debe participar en la resolución de sobrecargas ([SWS_CORE_00154]).
Exclusión de puntero nulo: Ni Name() ni Message() deben devolver jamás nullptr ([SWS_CORE_00152], [SWS_CORE_00153]). Una implementación de subclase que devuelva nullptr infringe la especificación de la interfaz.
Esta guía fue generada por un asistente de curación mediante IA sobre la base de la especificación AUTOSAR R25-11.
Compare for equality with another ara::core::ErrorDomain instance. Two ara::core::ErrorDomain instances compare equal when their identifiers (returned by Id()) are equal
GENERADO POR IAno revisadoModelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 59f6b727c495Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán
La función miembro Id() de la clase ara::core::ErrorDomain del archivo de cabecera ara/core/error_domain.h devuelve de forma síncrona el identificador unívoco del respectivo dominio de errores ([SWS_CORE_00151]). La llamada no espera parámetros de entrada y devuelve el identificador de dominio como valor del tipo IdType, garantizando así una distinción unívoca de los diferentes dominios de errores en todo el sistema.
Para el tratamiento de errores es relevante que la función esté declarada como noexcept y clasificada como exception safe ([SWS_CORE_00151]). Por consiguiente, nunca lanza excepciones y no notifica códigos de error ni casos especiales. Gracias a su propiedad como método constexpr, el identificador puede evaluarse, en caso necesario, ya en tiempo de compilación y utilizarse en expresiones constantes.
En lo relativo a concurrencia y condiciones de llamada, Id() está especificado como thread-safe ([SWS_CORE_00151]). La llamada no tiene estado y está libre de efectos secundarios modificadores, de modo que cualquier número de subprocesos puede acceder simultáneamente y sin mecanismos de bloqueo externos a la misma instancia.
En la interacción dentro de la arquitectura de dominios, el identificador constituye el criterio primario de comparación: según la especificación, dos instancias de ara::core::ErrorDomain se consideran iguales si y solo si coinciden sus identificadores proporcionados por Id(), lo cual es implementado directamente por el operador de igualdad operator== ([SWS_CORE_00137]).
Esta nota de uso fue creada por una IA y se basa en AUTOSAR Adaptive R25-11.
Return a textual representation of the given errorCode.
The returned pointer remains owned by the ara::core::ErrorDomain sub-class and shall not be freed by clients.
GENERADO POR IAno revisadoModelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 9827a3eb35a8ProcedenciaPreguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán
La función puramente virtual Message de la clase base ara::core::ErrorDomain del encabezado ara/core/error_domain.h sirve para la obtención síncrona de una representación textual para un código de error específico del dominio pasado errorCode[SWS_CORE_00153]. Devuelve un puntero a una cadena terminada en nulo (const char *) que garantiza no ser nunca nullptr. La memoria referenciada permanece bajo propiedad de la respectiva subclase de ara::core::ErrorDomain y en ningún caso debe ser liberada por los clientes llamantes [SWS_CORE_00153].
En lo relativo a la concurrencia y robustez, el método está declarado como noexcept, se considera seguro frente a excepciones (exception safe) y está diseñado para ser plenamente seguro para hilos (thread-safe) [SWS_CORE_00153]. En cuanto a posibles estados de error, se especifica que un errorCode que no proceda de la instancia respectiva de ara::core::ErrorDomain provoca una infracción del tipo WrongDomainOfAnErrorCodeViolation[SWS_CORE_00153].
En interacción con el modelo de tratamiento de errores de AUTOSAR, dominios de error concretos como ara::core::FutureErrorDomain[SWS_CORE_00443] y ara::core::CoreErrorDomain[SWS_CORE_05243] sobrescriben este método para transformar códigos de error específicos del dominio en textos de mensaje concretos. Interpretación: La interacción con ara::core::ErrorCode::Message()[SWS_CORE_00518], que devuelve una representación textual como StringView, se basa probablemente en que ErrorCode delega la traducción en el método Message del dominio de error asociado. Pregunta Q-f9007fdf5234b6a4 (abierta)
Esta nota de uso ha sido generada automáticamente sobre la base de los requisitos de la especificación.
This function will determine the appropriate exception type for the given ErrorCode according to [SWS_CORE_10953] and throw it. The thrown exception will contain the given ErrorCode.
GENERADO POR IAno revisadoModelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: f434ab45abb9Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán
El método virtual puro ThrowAsException de la clase ara::core::ErrorDomain sirve para lanzar un código de error pasado de forma síncrona como una excepción del tipo ara::core::Exception[SWS_CORE_00154]. La función toma como parámetro de entrada una referencia a const ErrorCode &errorCode y no tiene valor de retorno, ya que la ejecución finaliza al lanzar la excepción [SWS_CORE_00154].
En lo relativo al comportamiento ante errores y excepciones, el dominio correspondiente determina el tipo de excepción adecuado para el código de error pasado conforme a [SWS_CORE_10953] y lo lanza [SWS_CORE_00154]. La excepción lanzada contiene el ErrorCode pasado [SWS_CORE_00154]. La función está clasificada como no segura ante excepciones (not exception safe) [SWS_CORE_00154].
Para la concurrencia y el contexto del compilador se aplican las siguientes directrices:
Seguridad para subprocesos: la llamada a ThrowAsException está especificada como segura para subprocesos (thread-safe) [SWS_CORE_00154].
Restricción con excepciones de C++ desactivadas: si las excepciones de C++ están desactivadas en la cadena de herramientas del compilador, la función no debe participar en la resolución de sobrecargas conforme a [SWS_CORE_10304][SWS_CORE_00154].
En interacción con otros componentes, la función constituye la base para el lanzamiento de excepciones mediante objetos de error: así, ara::core::ErrorCode::ThrowAsException delega el lanzamiento al dominio asociado a través de this->Domain().ThrowAsException(*this)[SWS_CORE_00519]. Las implementaciones concretas sobrescriben esta interfaz para lanzar excepciones específicas como CoreException en CoreErrorDomain[SWS_CORE_05244] o FutureException en FutureErrorDomain[SWS_CORE_00444].
Este texto ha sido generado por una IA y se basa en la especificación AUTOSAR Adaptive R25-11.
Any exception of the type as defined in [SWS_CORE_10953] containing the given ErrorCode
Hinweise: This function shall not participate in overload resolution when C++ exceptions are disabled in the compiler toolchain. As per [SWS_CORE_10304].
Request a governed re-review of this record. The record is not changed immediately.
This dtor is non-virtual (and trivial) so that this class can be a literal type. While this class has virtual functions, no polymorphic destruction is needed.
gemini-3.8-flash-low· 2026-10-13 · Original en alemán