Sirve como clase base para todas las excepciones de AUTOSAR y encapsula un código de error seguro para subprocesos para su evaluación.
GENERADO POR IAno revisadoModelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: d4eaa8466f70ProcedenciaPreguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán
Sirve como clase base para todas las excepciones de AUTOSAR y encapsula un código de error seguro para subprocesos para su evaluación.
La clase ara::core::Exception sirve como clase base común para todos los tipos de excepción de la Adaptive Platform e incrusta un ErrorCode en la jerarquía de excepciones estandarizada de C++ [SWS_CORE_00611]. Cuando se producen errores, transporta este código de error de forma segura para subprocesos a un manejador, que puede evaluarlo mediante Error() o el método estándar derivado what()[SWS_CORE_00613]. Todas las operaciones son estrictamente seguras frente a excepciones y están declaradas como noexcept. Para evitar el corte involuntario de objetos (object slicing) en tipos derivados, las operaciones de copia se implementan como protegidas.
Contexto
La clase ara::core::Exception sirve como clase base común para todos los tipos de excepción dentro de la AUTOSAR Adaptive Platform. Tiende un puente entre el tratamiento de excepciones de la biblioteca estándar de C++ y el modelo de errores de AUTOSAR: por un lado, deriva públicamente de std::exception y sobrescribe su función miembro virtual what()[SWS_CORE_00612]; por otro lado, transporta un objeto de error incrustado del tipo ara::core::ErrorCode[SWS_CORE_00611], [SWS_CORE_00613].
La responsabilidad principal de ara::core::Exception consiste en proporcionar información de error de forma estructurada a través de los límites de llamada en caso de excepción. Interpretación: la clase probablemente esté concebida como raíz común para clases de excepción específicas del dominio de la plataforma; sus operaciones de copia están especificadas como protected para evitar el corte involuntario de objetos (object slicing) en instancias derivadas [SWS_CORE_00614], [SWS_CORE_00618]. Pregunta Q-20ffec7888b9e724 (abierta)
La creación de una ara::core::Exception requiere obligatoriamente la indicación explícita de un código de error al llamar al constructor [SWS_CORE_00611]. Este constructor está definido como noexcept y, por lo tanto, no lanza excepciones por sí mismo.
La propiedad y las posibilidades de copia siguen reglas de protección estrictas: tanto el constructor de copia [SWS_CORE_00618] como el operador de asignación por copia [SWS_CORE_00614] poseen el modificador de acceso protected. Esto evita que las subclases polimórficas se copien de forma incompleta a través de interfaces de la clase base. En cambio, para la transferencia de recursos, el constructor de movimiento [SWS_CORE_00615] y el operador de asignación por movimiento con calificador de referencia &[SWS_CORE_00616] están disponibles públicamente como noexcept=default.
La destrucción se realiza de forma determinista a través del destructor virtual [SWS_CORE_00617], que está especificado como noexcept override=default y garantiza la limpieza adecuada de las instancias derivadas. Los accesos de lectura concurrentes a los métodos, así como la instanciación, están designados como seguros para subprocesos [SWS_CORE_00611], [SWS_CORE_00612], [SWS_CORE_00613].
Ruta de uso
El flujo regular abarca desde la detección del error y el lanzamiento de la excepción hasta el diagnóstico estructurado en el manejador de excepciones:
Creación y lanzamiento: un componente detecta una situación de error, instancia la excepción con el ErrorCode[SWS_CORE_00611] adecuado y lanza el objeto a través de throw.
Captura: un bloque de nivel superior captura el objeto por referencia (por ejemplo, como const ara::core::Exception& o de forma polimórfica como const std::exception&).
Salida de texto estandarizada: a través de what() se puede obtener una explicación textual como cadena terminada en nulo [SWS_CORE_00612]. Todas las garantías de tiempo de vida de std::exception::what se conservan por completo.
Comprobación detallada de errores: a través de la función miembro Error(), el manejador accede a una referencia constante del ErrorCode[SWS_CORE_00613] integrado para evaluar de forma automatizada dominios de error y códigos específicos del sistema.
Dado que ara::core::Exception en sí mismo representa el objeto portador para estados de error, todas las operaciones están diseñadas para una máxima tolerancia a fallos:
Condiciones de tiempo de vida: la referencia proporcionada por Error() se vincula al objeto de excepción [SWS_CORE_00613]; no debe utilizarse más allá del tiempo de vida de la Exception. Para la devolución de what() se aplican las reglas de tiempo de vida de la biblioteca estándar [SWS_CORE_00612].
Prevención de estados de objeto no válidos: mediante la encapsulación de las operaciones de copia en el ámbito protected se evita que las subclases polimórficas se vuelvan inconsistentes accidentalmente por slicing [SWS_CORE_00614], [SWS_CORE_00618].
Esta guía se basa en la especificación AUTOSAR Adaptive Platform Release R25-11.
Return the explanatory string. This function overrides the virtual function std::exception:: what. All guarantees about the lifetime of the returned pointer that are given for std::exception::what are preserved. ≙ std::exception::
Return the explanatory string. This function overrides the virtual function std::exception:: what. All guarantees about the lifetime of the returned pointer that are given for std::exception::what are preserved.
GENERADO POR IAno revisadoModelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 1b4e9bb17f9aProcedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán
La función miembro what de la clase ara::core::Exception sirve para la recuperación síncrona de una cadena explicativa sobre el error ocurrido [SWS_CORE_00612]. Sobrescribe la función virtual std::exception::what y devuelve un puntero a una cadena terminada en nulo (const char*) [SWS_CORE_00612].
Uso y ciclo de vida
La función no espera parámetros de entrada. En cuanto a la validez del puntero devuelto, se conservan todas las garantías aplicables a std::exception::what[SWS_CORE_00612]. Para poder utilizar la función, debe incluirse el archivo de cabecera ara/core/exception.h[SWS_CORE_00612].
Tratamiento de errores y concurrencia
Seguridad frente a excepciones: La operación está declarada como noexcept y especificada como segura frente a excepciones (exception safe); ella misma no lanza excepciones [SWS_CORE_00612].
Concurrencia: La ejecución está especificada como segura para subprocesos (thread-safe) [SWS_CORE_00612]. Por tanto, las llamadas pueden realizarse de forma segura desde subprocesos paralelos.
gemini-3.8-flash-low· 2026-10-13 · Original en alemán