تتبّع الأخطاء

تعرّف على كيفية تتبّع الأخطاء وحلّها باستخدام OpenReplay. احصل على رؤية تفصيلية للأخطاء عبر تطبيقات الويب الخاصة بك وقم باستكشاف المشكلات وحلّها بسياق كامل.

تتبّع الأخطاء

احصل على رؤية شاملة ودقيقة للأخطاء داخل تطبيقات الويب الخاصة بك. مع OpenReplay، يمكنك استكشاف المشكلات وحلّها بسياق كامل، مما يتيح حلًّا أسرع للمشكلات.

رؤى تتبّع الأخطاء عبر العروض المختلفة

Section titled رؤى تتبّع الأخطاء عبر العروض المختلفة

من عرض الجلسات (Sessions)

Section titled من عرض الجلسات (Sessions)
  1. انتقل إلى عرض الجلسة > علامة التبويب Errors
  2. استخدم Omnisearch: حدّد الحدث “Error Message” وأدخِل رسالة الخطأ المحددة.
الأخطاء في الجلسات
  1. انتقل إلى Console > علامة التبويب Errors
  2. افتح الخطأ لعرض ملفات sourcemaps الكاملة.
  3. انقر على “Find all sessions with this error” لرؤية قائمة الجلسات التي حدث فيها الخطأ.
خطأ الجلسة

من عرض البطاقات (Cards)

Section titled من عرض البطاقات (Cards)
  1. انتقل إلى Cards > Add Card > Monitors
  2. حدّد البطاقة Table of Errors

تسجيل الاستثناءات يدويًا

Section titled تسجيل الاستثناءات يدويًا

يدعم متتبّع OpenReplay تسجيل ثلاثة أنواع من الأخطاء:

  1. الاستثناءات الملتقطة (Caught Exceptions) - Error
  2. الوعود المرفوضة (Rejected Promises) - PromiseRejectionEvent
  3. أحداث الأخطاء (onError) - ErrorEvent

يمكن الإبلاغ عن كل هذه الأنواع باستخدام طريقة واحدة:

tracker.handleError(error, metaObject); // metaObject is optional and is a flat object

لنستعرض أمثلة لكل نوع من أنواع الأخطاء:

الاستثناءات الملتقطة (Error)

Section titled الاستثناءات الملتقطة (Error)

بشكل افتراضي، لا يتم تسجيل الاستثناءات الملتقطة في علامة التبويب ‘Console’. للإبلاغ عن خطأ، استخدم النمط التالي:

try {
    // application code
} catch (err) {
    // application code that handles the error
    tracker.handleError(err, metaObject); // metaObject is optional and is a flat object
}

الوعود المرفوضة (PromiseRejectionEvent)

Section titled الوعود المرفوضة (PromiseRejectionEvent)

إذا تم رفض وعد (promise) وكان يلزم الإبلاغ عنه إلى OpenReplay، فاستخدم هذا الأسلوب:

function myFunc() {
    doSomeAsyncStuff()
        .then((result) => {
            // application code
        })
        .catch(promiseRejectionErr => {
            // application code to handle the error
            tracker.handleError(promiseRejectionErr, metaObject); // metaObject is optional and is a flat object
        });
}

أبلِغ عن الأخطاء التي تطلقها الأحداث، مثل فشل تحميل عنصر <img>:

<img id="myImg" src="image.gif">
<p id="demo"></p>

<script>
document.getElementById("myImg").addEventListener("error", myFunction);

function myFunction(errorEvent) {
    document.getElementById("demo").innerHTML = "The image could not be loaded.";
    tracker.handleError(errorEvent, { context: "demo" });
}
</script>

إذا كانت لديك أي أسئلة حول هذه العملية، فلا تتردد في التواصل معنا عبر Slack الخاص بنا أو الاطلاع على المنتدى الخاص بنا.