مقدمة
يلتقط Lerix الأخطاء من تطبيق Angular الخاص بك لتتمكّن من تصحيح المشاكل بشكل أسرع. بعد إتمام تثبيت Angular، استخدمLerixService.throwError() لإرسال أخطاء مخصّصة إلى لوحة التحكم —
أما الأخطاء غير الملتقطة فتُلتقط تلقائياً، دون الحاجة لأي كود إضافي.
تأكّد من تسجيل الـ SDK عبر
provideLerix() قبل الإبلاغ عن الأخطاء.الإبلاغ عن خطأ
المعاملات (Parameters)
قيم BugType
قيم BugSeverity
الالتقاط التلقائي للأخطاء
يُثبّتprovideLerix() التقاط الأخطاء بطريقتين، بحيث لا حاجة لتغليف أي شيء
في try/catch للحصول على تغطية أساسية:
- معالج
ErrorHandlerمخصّص خاص بـ Angular يلتقط أي شيء يُرمى داخل منطقة (zone) Angular — ربط القوالب (template bindings)، دوال دورة حياة المكوّنات، اشتراكات RxJS. - مستمعا
window.onerrorوَunhandledrejectionالعامّان يلتقطان كل شيء آخر.
throwError اليدوية):
الالتقاط التلقائي لتتبّع المكدس
عند استدعاءthrowError() دون تمرير معامل stack، يُلتقط تتبّع مكدس
تلقائياً من موضع الاستدعاء — لا تحتاج لتمريره صراحةً إلا عند الإبلاغ عن
تتبّع مكدس خطأ (Error) ملتقَط بنفسك بدلاً من موضع استدعاء throwError
(مثل error.stack?.split('\n')).
في الحالتين، يُحلَّل كل إطار من إطارات المكدس من موضعه المُجمَّع
(compiled/bundled) (مثل main.js:577:15) إلى ملف المصدر الأصلي وسطره،
باستخدام خريطة المصدر (source map) الخاصة بالبناء نفسه — نفس الآلية التي
تستخدمها أدوات المطوّرين (DevTools) في المتصفح لعرض تتبّعات مكدس مقروءة
بدلاً من مواضع الحزمة (bundle) المُصغَّرة. يحدث هذا تلقائياً؛ لا حاجة لأي
إعداد.
يتطلّب التحليل أن تكون خريطة المصدر متاحة على رابط الإطار — وهذا صحيح
دائماً في بيئة التطوير، وصحيح في الإنتاج فقط إذا كان بناؤك يقدّم ملفات
.map علناً. إذا أبقى بناء الإنتاج خرائط المصدر خاصة (خيار شائع)، ترجع
الإطارات إلى موضعها المُجمَّع بدلاً من فشل الإبلاغ — التحليل هو أفضل
محاولة (best-effort) ولا يعطّل أو يؤخّر التقرير نفسه أبداً.