DEENESPTFRRUARHIKOZHNL

فئة ara::diag::DiagSovdException

[SWS_DM_01807] Upstream: RS_AP_00119

class DiagSovdException :           public ara::core::Exception {...};

Exception type for SOVD thrown by Diag classes.

Header-Datei#include "ara/diag/diag_sovd_error_domain.h"
Forwarding-Header#include "ara/diag/diag_fwd.h"
Scopenamespace ara::diag
Basisklasse(n)ara::core::Exception

دليل المستخدممولَّد بالذكاء الاصطناعي

يُشعر بأخطاء التشخيص الخاصة بـ SOVD كـ Exception آمن من الاستثناءات مع كود خطأ مخصص إلى المستدعين.
مُولَّد بالذكاء الاصطناعي غير مُراجَع النموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: 58783cae6416 المصدر أسئلة مفتوحة (2)
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني

يُشعر بأخطاء التشخيص الخاصة بـ SOVD كـ Exception آمن من الاستثناءات مع كود خطأ مخصص إلى المستدعين.

تُستخدم الفئة ara::diag::DiagSovdException كنوع استثناء متخصص لـ Service-Oriented Vehicle Diagnostics (SOVD) ويتم إطلاقها بواسطة فئات التشخيص في الوحدة diag للإشعار بالأخطاء [SWS_DM_01807]. وهي تشتق من ara::core::Exception ويتم إنشاء مثيل لها صراحة في حالات الخطأ مع ara::core::ErrorCode، لنقل معلومات الخطأ عبر C++ stack unwinding إلى السياق المستدعي [SWS_DM_01808]. كقيد مركزي، تم تحديد المنشئ كـ noexcept وبذلك يضمن أمانًا كاملًا من الاستثناءات بالإضافة إلى الأمان الخيطي عند إنشاء الكائن.

السياق

تمثل الفئة ara::diag::DiagSovdException نوع الاستثناء المركزي لـ Service-Oriented Vehicle Diagnostics (SOVD) في وحدة التشخيص لـ AUTOSAR Adaptive Platform ([SWS_DM_01807]، SWS Diagnostics §8.51.4 «Class: DiagSovdException»). ويتم إطلاقها بواسطة فئات التشخيص الداخلية للإشارة إلى حالات خطأ محددة أثناء معالجة طلبات SOVD ([SWS_DM_01807]، SWS Diagnostics, ص. 69).

تشتق الفئة علنًا من الاستثناء الأساسي العام ara::core::Exception ([SWS_DM_01807]، SWS Diagnostics §8.51.4). ومن بين أطراف التفاعل المباشرة فئات التشخيص الوظيفية للوحدة diag، والتي تحلل طلبات التشخيص وتطلق استثناءات عند حدوث أخطاء، بالإضافة إلى برمجيات التطبيق المستدعية، التي يجب أن تلتقط هذه الاستثناءات وتعالجها. تم إعلان الفئة في الترويسة ara/diag/diag_sovd_error_domain.h لتلبية متطلبات معمارية أعلى مستوى ([SWS_DM_01808]، SWS Diagnostics §8.51.4.1.1.1 «DiagSovdException»).

دورة الحياة

يتم إنشاء مثيل لـ ara::diag::DiagSovdException عبر منشئ يستقبل إلزاميًا ara::core::ErrorCode كمعامل err ([SWS_DM_01808]، SWS Diagnostics §8.51.4.1.1.1). تم إعلان هذا المنشئ كـ explicit لمنع التحويلات الضمنية لأكواد الأخطاء إلى كائنات استثناء، وتم تمييزه كـ noexcept ([SWS_DM_01808]).

فيما يتعلق بالمتانة والتزامن، تضمن المواصفة أن الإنشاء آمن تمامًا من الاستثناءات (exception safe) وآمن خيطيًا ([SWS_DM_01808]). وبذلك يُضمن ألا يؤدي إنشاء الخطأ نفسه في سيناريوهات التشخيص المتزامنة إلى حدوث استثناءات أخرى أو حالات عدم اتساق. تتبع دورة حياة الاستثناء عملية stack unwinding القياسية في ++C: يتم إنشاء الكائن في حالة الخطأ داخل دالة تشخيص، وتمريره عبر مستويات الاستدعاء، وتدميره بصورة محددة عند مغادرة كتلة catch المعالجة.

مسار الاستخدام

ينقسم التسلسل النموذجي عند استخدام ara::diag::DiagSovdException إلى الخطوات التالية:

  • يبدأ تطبيق عملية تشخيص متعلقة بـ SOVD على واجهة للوحدة diag.
  • تكتشف مكونة التشخيص المسؤولة حالة خاطئة وتنشئ ara::core::ErrorCode المناسب من نطاق خطأ SOVD ([SWS_DM_01808]).
  • تنشئ المكونة الاستثناء باستخدام explicit DiagSovdException(err) وتطلقه ([SWS_DM_01808]، [SWS_DM_01807]).
  • يلتقط التطبيق الاستثناء عبر catch (const ara::diag::DiagSovdException& ex) أو بتعددية الأشكال عبر const ara::core::Exception& للاستجابة لحالة الخطأ.
سير معالجة الاستثناء باستخدام DiagSovdExceptionالتطبيقDiagnoseklasseDiagSovdExceptionتنفيذ استدعاء تشخيص SOVDSOVD-Fehlerbedingung feststellenara::core::ErrorCode erzeugenDiagSovdException(err) konstruierenthrow DiagSovdExceptioncatch (const DiagSovdException& ex)تحليل الخطأ ومعالجته

مخطط تسلسلي: تسلسل الاستدعاء والمعالجة عند إطلاق DiagSovdException. المصادر: [SWS_DM_01807]، [SWS_DM_01808].

سيناريوهات الأخطاء

باعتبارها ناقلًا للأخطاء، تُستخدم الفئة نفسها لمعالجة الحالات الاستثنائية ([SWS_DM_01807]). كشرط مسبق شكلي للإنشاء، يلزم توفير ara::core::ErrorCode مهيأ ([SWS_DM_01808]). وبما أن المنشئ مُعلن كـ noexcept، فلا تحدث أي استثناءات أثناء إنشاء الكائن نفسه ([SWS_DM_01808]).

تفسير: يُرجح أن المثيل يغلف كود الخطأ الممرر بصفة دائمة، بحيث يمكن لمعالجات الأخطاء اللاحقة فحصه عبر دوال موروثة من ara::core::Exception. سؤال Q-332b95b96849e379 (مفتوح) في تكوينات النظام التي تم فيها تعطيل استثناءات ++C، يُرجح أن تفضل مكونة التشخيص آليات خطأ بديلة، بينما يمثل DiagSovdException المسار المخصص لمعالجة الاستثناءات.

يستند هذا الدليل إلى مواصفة AUTOSAR Adaptive Platform R25-11 ويلخص متطلبات معالجة استثناءات SOVD.

مخطط الفئات UML

Hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); Klicken öffnet die jeweilige Klassenseite.

G nara__diag__DiagSovdException335 DiagSovdException + DiagSovdException() nara__core__Exception792 Exception nara__diag__DiagSovdException335->nara__core__Exception792 nstd__exception10 std::exception nara__core__Exception792->nstd__exception10

المُنشئات والمُتلف

Construct a new DiagSovdException from an ErrorCode.

explicit DiagSovdException (ara::core::ErrorCode err) noexcept;

توثيق الدوال

دالة DiagSovdException [SWS_DM_01808] Upstream: RS_AP_00119

explicit DiagSovdException (ara::core::ErrorCode err) noexcept;

Construct a new DiagSovdException from an ErrorCode.

Header-Datei#include "ara/diag/diag_sovd_error_domain.h"
Scopeclass ara::diag::DiagSovdException
Exception-Sicherheitexception safe
Thread-Sicherheitthread-safe

Parameter (in)

ParameterBeschreibung
errthe ErrorCode

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_DM_01808
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01808@rel:R25-11#a058309a
Content hash
a058309a
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01808
Status: valid/unmigrated Version: rel:R25-11#e8244057 Versionshistorie & Revisions (1 transition, 4 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_DM_01808@rel:R25-11#e8244057
Point-in-Time History:
Recorded Revisions (4):
  • R25-11rel:R25-11#76e1ec2d2026-09-30
  • R23-11rel:R23-11#62167f502026-10-14
  • R24-11rel:R24-11#e82440572026-10-14
  • R25-11rel:R25-11#e82440572026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill