DEENESPTFRRUARHIKOZHNL

فئة ara::diag::DiagException

[SWS_DM_00515] Upstream: RS_AP_00119

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

Exception type thrown by Diag classes.

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

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

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

يُستخدم لتغليف رموز أخطاء التشخيص وتمريرها كاستثناء C++ إلى مستدعي الدوال الأعلى.

تعمل الفئة ara::diag::DiagException كنوع استثناء متخصص للإشارة إلى الأخطاء الصادرة عن فئات التشخيص في AUTOSAR Adaptive Platform ([SWS_DM_00515]). وهي تغلف ara::core::ErrorCode ويتم طرحها عند حدوث أخطاء داخلية لتمرير حالات الخطأ بشكل منظم إلى التطبيقات المستدعية ([SWS_DM_00516]). تم التصريح عن المُنشئ الخاص بها بأنه آمن لمؤشرات الترابط وآمن من الاستثناءات بواسطة noexcept ([SWS_DM_00516]).

السياق

تشكل الفئة ara::diag::DiagException نوع الاستثناء المركزي لمجموعة الوظائف Diagnostics في AUTOSAR Adaptive Platform (SWS Diagnostics §8.11.4 «Class: DiagException»، [SWS_DM_00515]). وهي مشتقة مباشرة من الفئة الأساسية ara::core::Exception وتكون مسؤولة عن الإبلاغ عن حالات الخطأ التي تحدث داخل فئات التشخيص إلى المستدعي في الحالات الاستثنائية. أطراف التفاعل الأساسية هي فئات التشخيص الموفرة داخل ara::diag، والتي تشير إلى الحالات الاستثنائية، بالإضافة إلى برمجيات التطبيق المستخدمة التي تطلب عمليات التشخيص وتلتقط الاستثناءات المحتملة. ومن خلال التصريح عنها في ملف الترويسة ara/diag/diag_error_domain.h، ترتبط فئة الاستثناء ارتباطاً مباشراً بنطاقات الأخطاء الخاصة بالتشخيص ([SWS_DM_00516]).

دورة الحياة

يتم إنشاء مثيل لـ ara::diag::DiagException عن طريق تمرير رمز خطأ من النوع ara::core::ErrorCode إلى المُنشئ ([SWS_DM_00516]). تم تعريف هذا المُنشئ كـ explicit، مما يمنع التحويلات الضمنية للأنواع من رموز الأخطاء. بالإضافة إلى ذلك، تم التصريح عن الإنشاء بأنه noexcept، مما يضمن أمان الاستثناءات ("exception safe") أثناء إنشاء الكائن ويمنع طرح استثناء آخر أثناء إطلاق حالة استثنائية ([SWS_DM_00516]). يُضمن أمان مؤشرات الترابط ("thread-safe") لاستدعاء المُنشئ ([SWS_DM_00516]). وفيما يتعلق بدورة الحياة الإضافية، يظل كائن الاستثناء موجوداً طوال مدة عملية تفكيك مكدس الاستدعاءات (Stack Unwinding) حتى اكتمال كتلة catch المقابلة (تفسير: تتبع ملكية كائن الاستثناء وتدميره الآليات القياسية لبيئة تشغيل C++). سؤال Q-ae485b4ea411b187 (مفتوح)

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

يمتد مسار الاستخدام العادي لـ ara::diag::DiagException من اكتشاف حالة خطأ في النظام الفرعي للتشخيص إلى التقييم بواسطة مستوى التطبيق. يوضح التسلسل التالي تفاعل المكونات المعنية:

سير العمل عند إطلاق DiagException ومعالجتهالتطبيقara::diag-KlasseDiagExceptionDiagnosefunktion aufrufenUse Case: حالة خطأ في مجمع التشخيصDiagException(err) instanziierenthrow DiagExceptionمعالجة الاستثناء في كتلة catch

مخطط التسلسل: المسار النموذجي عند حدوث DiagException وطرحها ومعالجتها. المصادر: [SWS_DM_00515]، [SWS_DM_00516].

يبدأ التطبيق أولاً عملية على فئة وظيفية في الوحدة ara::diag. وإذا حدث شرط أثناء المعالجة يستبعد مسار الإرجاع العادي، تنشئ فئة التشخيص مثيلاً من ara::diag::DiagException مع تحديد ara::core::ErrorCode المعني ([SWS_DM_00516]). يتم طرح هذا الاستثناء عبر آلية استثناءات C++ العادية. يلتقط مثيل التطبيق المستدعي الكائن في معالج استثناءات محدد النوع لبدء إجراءات الاسترداد أو التسجيل المناسبة.

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

باعتبارها فئة للإشارة إلى الأخطاء، تخدم ara::diag::DiagException أساساً تمرير حالات أخطاء التشخيص. الشرط المسبق للإنشاء الناجح هو توفير معلمة مهيأة err من النوع ara::core::ErrorCode ([SWS_DM_00516]). يضمن أمان الاستثناءات للمُنشئ عدم إطلاق استثناءات ثانوية في مسار الإنشاء حتى في المواقف الحرجة من حيث الموارد ([SWS_DM_00516]). بعد إنشاء المثيل بنجاح، يغلف الكائن رمز الخطأ الممرر بالكامل (تفسير: يُرجح فحص رمز خطأ التشخيص الفعلي عبر الآليات الأساسية الموروثة لـ ara::core::Exception بواسطة منطق التطبيق الملتقط). سؤال Q-d20a61b72951321b (مفتوح)

تم تنسيق هذا الدليل بواسطة ذكاء اصطناعي استناداً إلى مواصفة AUTOSAR AP R25-11.

مخطط الفئات UML

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

G nara__diag__DiagException942 DiagException + DiagException() nara__core__Exception792 Exception nara__diag__DiagException942->nara__core__Exception792 nstd__exception10 std::exception nara__core__Exception792->nstd__exception10

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

DiagException دالة

Construct a new DiagException from an ErrorCode.

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

توثيق الدوال

دالة DiagException [SWS_DM_00516] Upstream: RS_AP_00119

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

Construct a new DiagException from an ErrorCode.

Header-Datei#include "ara/diag/diag_error_domain.h"
Scopeclass ara::diag::DiagException
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_00516
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_00516@rel:R25-11#d272313b
Content hash
d272313b
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_00516
Status: valid/unmigrated Version: rel:R25-11#6bef63b1 Versionshistorie & Revisions (1 transition, 7 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_00516@rel:R25-11#6bef63b1
Point-in-Time History:
Recorded Revisions (7):
  • R25-11rel:R25-11#027392ad2026-09-30
  • R20-11rel:R20-11#f80be4a32026-10-14
  • R21-11rel:R21-11#e1dfd6d02026-10-14
  • R22-11rel:R22-11#c06b421b2026-10-14
  • R23-11rel:R23-11#d17f9fbb2026-10-14
  • R24-11rel:R24-11#6bef63b12026-10-14
  • R25-11rel:R25-11#6bef63b12026-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