"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية التقاط آثار مكدس الاستثناءات المخصصة في جافا سكريبت؟

كيفية التقاط آثار مكدس الاستثناءات المخصصة في جافا سكريبت؟

تم النشر بتاريخ 2024-11-08
تصفح:858

How to Capture Stack Traces of Custom Exceptions in JavaScript?

الحصول على جزء من الاستثناءات المطروحة

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

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

function stackTrace() {
    var err = new Error();
    return err.stack;
}
يُنشئ هذا الأسلوب تتبع مكدس مشابه لـ:

DBX.Utils.stackTrace@http://localhost:49573/assets/js/scripts.js:44 DBX.Console.Debug@http://localhost:49573/assets/js/scripts.js:9 .success@http://localhost:49573/:462 x.Callbacks/c@http://localhost:49573/assets/js/jquery-1.10.2.min.js:4 x.Callbacks/p.fireWith@http://localhost:49573/assets/js/jquery-1.10.2.min.js:4 ك@http://localhost:49573/assets/js/jquery-1.10.2.min.js:6 .send/r@http://localhost:49573/assets/js/jquery-1.10.2.min.js:6
DBX.Utils.stackTrace@http://localhost:49573/assets/js/scripts.js:44
DBX.Console.Debug@http://localhost:49573/assets/js/scripts.js:9
.success@http://localhost:49573/:462
x.Callbacks/c@http://localhost:49573/assets/js/jquery-1.10.2.min.js:4
x.Callbacks/p.fireWith@http://localhost:49573/assets/js/jquery-1.10.2.min.js:4
k@http://localhost:49573/assets/js/jquery-1.10.2.min.js:6
.send/r@http://localhost:49573/assets/js/jquery-1.10.2.min.js:6
يوفر هذا التنسيق وظيفة الاتصال، وعنوان URL، ووظائف الاتصال المتعاقبة.

بالنسبة للمتصفحات الحديثة، تتوفر طريقة أكثر وضوحًا:

console.trace(); // (MDN Reference)
تلتقط هذه الوظيفة تتبع المكدس وتعرضه في وحدة التحكم.

تم اقتراح خيار بديل في الموضوع الأصلي:

function stacktrace() { 
  function st2(f) {
    return !f ? [] : 
        st2(f.caller).concat([f.toString().split('(')[0].substring(9)   '('   f.arguments.join(',')   ')']);
  }
  return st2(arguments.callee.caller);
}
تعبر هذه الوظيفة بشكل متكرر مكدس الاستدعاءات وتنشئ سلسلة تتبع المكدس.

من خلال تنفيذ هذه الأساليب، يمكن للمطورين الحصول بشكل فعال على تتبعات المكدس لاستثناءات JavaScript المخصصة، مما يتيح معالجة أكثر قوة للأخطاء وتصحيح الأخطاء .

بيان الافراج أعيد طبع هذه المقالة على: 1729175015 إذا كان هناك أي انتهاك، يرجى الاتصال بـ [email protected] لحذفه
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3