Gestiona códigos de error del clúster ara::core, los traduce en mensajes de error y lanza las excepciones correspondientes.
GENERADO POR IAno revisadoModelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 8500dff6850eProcedenciaPreguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán
Gestiona códigos de error del clúster ara::core, los traduce en mensajes de error y lanza las excepciones correspondientes.
La clase ara::core::CoreErrorDomain representa el dominio de error para errores procedentes del clúster funcional ara::core y asocia mensajes de texto descriptivos a códigos de error numéricos [SWS_CORE_05243]. Además, permite transformar códigos de error en excepciones CoreException específicas de tipo a través de ThrowAsException()[SWS_CORE_05244]. Dado que todos los métodos de consulta son seguros para subprocesos y construibles mediante constexpr, el dominio resulta adecuado para un uso eficiente en todo el clúster. Si las excepciones de C++ están desactivadas en la cadena de herramientas, el método de excepción no participa en la resolución de sobrecargas.
Contexto
La clase ara::core::CoreErrorDomain representa el dominio de error específico para todos los estados de error que tienen su origen en el clúster funcional ara::core. Está definida como especialización final de ErrorDomain, impidiendo así cualquier derivación posterior. La clase proporciona el nombre corto unívoco del dominio a través del método Name()[SWS_CORE_05242]. Para lograr una integración consistente en el modelo de tratamiento de errores de AUTOSAR, CoreErrorDomain define alias de tipo centrales: como alias, Errc remite directamente a la enumeración CoreErrc[SWS_CORE_05231], mientras que Exception constituye el alias para la clase de excepción base correspondiente CoreException[SWS_CORE_05232]. Entre los interlocutores de interacción más importantes se encuentran los encapsuladores de error genéricos de tipo ErrorCode, que mantienen una referencia al dominio de error respectivo, así como componentes ejecutores que diagnostican o tratan estados de error.
Ciclo de vida
La creación de un CoreErrorDomain se realiza a través del constructor por defecto sin parámetros constexpr CoreErrorDomain() noexcept[SWS_CORE_05241]. Dado que el constructor está declarado como constexpr y noexcept, la instancia puede crearse ya en tiempo de compilación sin sobrecarga de asignación ni riesgo de excepciones.
Interpretación: Dado que en el estándar AUTOSAR Adaptive los dominios de error están concebidos sin estado y proporcionan exclusivamente metadatos constantes y lógica de transformación, típicamente debería existir en el sistema una instancia singleton global o estática a la que se accede en todo el clúster. Pregunta Q-7b4761bf124c5755 (abierta) La instancia permanece válida durante todo el tiempo de ejecución del proceso. En cuanto a la concurrencia, las operaciones de la clase están especificadas como seguras para subprocesos [SWS_CORE_05241], [SWS_CORE_05242], [SWS_CORE_05243], lo que permite consultas simultáneas desde múltiples subprocesos paralelos sin medidas de sincronización adicionales.
Ruta de uso
Durante el funcionamiento continuo, CoreErrorDomain es consultada por el sistema de tiempo de ejecución o por el código de aplicación principalmente en dos escenarios típicos: para la inspección textual de errores y para el tratamiento de excepciones.
Si se ha producido un error, se puede consultar el mensaje de texto correspondiente mediante la función miembro Message() pasando el código de error numérico [SWS_CORE_05243]. La especificación garantiza de forma vinculante que esta función nunca devuelve un puntero nulo (nullptr), de modo que el const char* devuelto puede utilizarse sin peligro para salidas de diagnóstico o registro. Si un error no debe tratarse como valor de retorno, sino propagarse como excepción de C++, se utiliza para ello el método ThrowAsException()[SWS_CORE_05244]. Este recibe una instancia de ErrorCode, instancia la CoreException correspondiente y la lanza a la pila de llamadas actual.
Diagrama de secuencia: Flujo típico para la traducción de códigos de error y el lanzamiento condicional de excepciones. Fuentes: [SWS_CORE_05243], [SWS_CORE_05244]
Escenarios de error
Las funciones Name() y Message(), así como el constructor, están declaradas como noexcept y clasificadas como seguras frente a excepciones [SWS_CORE_05241], [SWS_CORE_05242], [SWS_CORE_05243]. No lanzan excepciones ni siquiera bajo condiciones de error ni generan códigos de error propios.
Por el contrario, ThrowAsException() está provista explícitamente de noexcept(false) y marcada como no segura frente a excepciones, ya que el lanzamiento determinista de una excepción (de tipo CoreException) representa la tarea principal de esta interfaz [SWS_CORE_05244]. Como precondición arquitectónica central rige: si en la cadena de herramientas utilizada o en los ajustes del compilador están desactivadas las excepciones de C++, esta función no debe participar en la resolución de sobrecargas [SWS_CORE_05244]. Esto evita errores de compilación en entornos de sistema que siguen el enfoque embebido tolerante a fallos sin tratamiento de excepciones de C++.
Esta guía fue generada por un sistema de IA sobre la base de la especificación R25-11.
Throw the exception type corresponding to the given ErrorCode.
GENERADO POR IAno revisadoModelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: c5a4846a6615Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán
La función miembro ThrowAsException de la clase ara::core::CoreErrorDomain (definida en el encabezado ara/core/core_error_domain.h) sirve para lanzar de forma síncrona una excepción de C++ basada en un código de error [SWS_CORE_05244] pasado. Como parámetro, la función acepta una referencia a una instancia constante de ErrorCode (const ErrorCode &errorCode) [SWS_CORE_05244]. El método no tiene valor de retorno, sino que lanza directamente una excepción de tipo CoreException que encapsula por completo el objeto ErrorCode pasado [SWS_CORE_05244].
En relación con el contexto de ejecución, la concurrencia y las condiciones del compilador, se aplican las siguientes directrices:
Seguridad para subprocesos: la función está especificada como segura para subprocesos (thread-safe) y, por tanto, se puede llamar de forma segura desde contextos concurrentes [SWS_CORE_05244].
Seguridad frente a excepciones: formalmente, el comportamiento está clasificado como no seguro frente a excepciones (not exception safe), ya que la función está declarada con noexcept(false) y, según lo previsto, lanza una excepción [SWS_CORE_05244].
Restricción del compilador: si las excepciones de C++ están deshabilitadas en la cadena de herramientas del compilador, el método no debe participar en la resolución de sobrecargas conforme a [SWS_CORE_10304][SWS_CORE_05244].
En la estructura arquitectónica, el método sobrescribe (override) la función base puramente virtual ThrowAsException de la clase abstracta ara::core::ErrorDomain[SWS_CORE_00154]. En el uso típico, la función no se invoca directamente en el objeto de dominio, sino que se inicia a través del método auxiliar ErrorCode::ThrowAsException(), el cual reenvía dinámicamente la llamada a través de this->Domain().ThrowAsException(*this) al dominio de error correspondiente [SWS_CORE_00519].
Esta nota de uso fue generada por una IA sobre la base de la especificación AUTOSAR Adaptive R25-11.
CoreException an exception 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.
gemini-3.8-flash-low· 2026-10-13 · Original en alemán