الحصول على جزء من الاستثناءات المطروحة
بينما تسمح 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:6DBX.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 المخصصة، مما يتيح معالجة أكثر قوة للأخطاء وتصحيح الأخطاء .
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3